

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
  <meta charset="utf-8">
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  
  <title>Display interface &mdash; LVGL  documentation</title>
  

  
  <link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
  <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
  <link rel="stylesheet" href="../_static/css/custom.css" type="text/css" />
  <link rel="stylesheet" href="../_static/css/fontawesome.min.css" type="text/css" />

  
  
    <link rel="shortcut icon" href="../_static/favicon.png"/>
  
  
  

  
  <!--[if lt IE 9]>
    <script src="../_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
    
      <script type="text/javascript" id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
        <script src="../_static/jquery.js"></script>
        <script src="../_static/underscore.js"></script>
        <script src="../_static/doctools.js"></script>
    
    <script type="text/javascript" src="../_static/js/theme.js"></script>

    
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="Input device interface" href="indev.html" />
    <link rel="prev" title="Set-up a project" href="project.html" />
 
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-78811084-3"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());

	gtag('config', 'UA-78811084-3', { 'anonymize_ip': true });
</script>

</head>

<body class="wy-body-for-nav">

   
  <div class="wy-grid-for-nav">
    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >
          

          
            <a href="../index.html">
          

          
            
            <img src="../_static/logo_lvgl.png" class="logo" alt="Logo"/>
          
          </a>

          
            
            
              <div class="version">
                v7.11.0-dev
              </div>
            
          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        
        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../intro/index.html">Introduction</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../intro/index.html#key-features">Key features</a></li>
<li class="toctree-l2"><a class="reference internal" href="../intro/index.html#requirements">Requirements</a></li>
<li class="toctree-l2"><a class="reference internal" href="../intro/index.html#license">License</a></li>
<li class="toctree-l2"><a class="reference internal" href="../intro/index.html#repository-layout">Repository layout</a></li>
<li class="toctree-l2"><a class="reference internal" href="../intro/index.html#release-policy">Release policy</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#branches">Branches</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#release-cycle">Release cycle</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#tags">Tags</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#changelog">Changelog</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#side-projects">Side projects</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#version-support">Version support</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../intro/index.html#faq">FAQ</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#where-can-i-ask-questions">Where can I ask questions?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#is-my-mcu-hardware-supported">Is my MCU/hardware supported?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#is-my-display-supported">Is my display supported?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#nothing-happens-my-display-driver-is-not-called-what-have-i-missed">Nothing happens, my display driver is not called. What have I missed?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#why-the-display-driver-is-called-only-once-only-the-upper-part-of-the-display-is-refreshed">Why the display driver is called only once? Only the upper part of the display is refreshed.</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#why-i-see-only-garbage-on-the-screen">Why I see only garbage on the screen?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#why-i-see-non-sense-colors-on-the-screen">Why I see non-sense colors on the screen?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#how-to-speed-up-my-ui">How to speed up my UI?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#how-to-reduce-flash-rom-usage">How to reduce flash/ROM usage?</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#how-to-reduce-the-ram-usage">How to reduce the RAM usage</a></li>
<li class="toctree-l3"><a class="reference internal" href="../intro/index.html#how-to-work-with-an-operating-system">How to work with an operating system?</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../get-started/index.html">Get started</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../get-started/quick-overview.html">Quick overview</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/quick-overview.html#get-started-in-a-simulator">Get started in a simulator</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/quick-overview.html#add-lvgl-into-your-project">Add LVGL into your project</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/quick-overview.html#learn-the-basics">Learn the basics</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#widgets">Widgets</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#events">Events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#parts">Parts</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#states">States</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#styles">Styles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#themes">Themes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/quick-overview.html#examples">Examples</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#button-with-label">Button with label</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#styling-buttons">Styling buttons</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/quick-overview.html#slider-and-alignment">Slider and alignment</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/quick-overview.html#micropython">Micropython</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/pc-simulator.html">Simulator on PC</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/pc-simulator.html#select-an-ide">Select an IDE</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/pc-simulator.html#set-up-eclipse-cdt">Set-up Eclipse CDT</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/pc-simulator.html#install-eclipse-cdt">Install Eclipse CDT</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/pc-simulator.html#install-sdl-2">Install SDL 2</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/pc-simulator.html#pre-configured-project">Pre-configured project</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/pc-simulator.html#add-the-pre-configured-project-to-eclipse-cdt">Add the pre-configured project to Eclipse CDT</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/pc-simulator.html#compile-and-run">Compile and Run</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/stm32.html">STM32</a></li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/nxp.html">NXP</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/nxp.html#creating-new-project-with-lvgl">Creating new project with LVGL</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/nxp.html#adding-hw-acceleration-for-nxp-imx-rt-platforms-using-pxp-pixel-pipeline-engine-for-existing-projects">Adding HW acceleration for NXP iMX RT platforms using PXP (PiXel Pipeline) engine for existing projects</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nxp.html#features-supported">Features supported:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nxp.html#basic-configuration">Basic configuration:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nxp.html#basic-initialization">Basic initialization:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nxp.html#project-setup">Project setup:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nxp.html#advanced-configuration">Advanced configuration:</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/espressif.html">Espressif (ESP32)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/espressif.html#get-the-lvgl-demo-project-for-esp32">Get the LVGL demo project for ESP32</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/espressif.html#use-lvgl-in-your-esp32-project">Use LVGL in your ESP32 project</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/espressif.html#prerequisites">Prerequisites</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/espressif.html#get-lvgl">Get LVGL</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/espressif.html#use-lvgl-esp32-drivers-in-your-project">Use lvgl_esp32_drivers in your project</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/espressif.html#support-for-esp32-s2">Support for ESP32-S2</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/arduino.html">Arduino</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/arduino.html#get-the-lvgl-ardunio-library">Get the LVGL Ardunio library</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/arduino.html#set-up-drivers">Set up drivers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/arduino.html#configure-lvgl">Configure LVGL</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/arduino.html#configure-the-examples">Configure the examples</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/arduino.html#initialize-lvgl-and-run-an-example">Initialize LVGL and run an example</a></li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/arduino.html#debugging-and-logging">Debugging and logging</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/micropython.html">Micropython</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/micropython.html#what-is-micropython">What is Micropython?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#highlights-of-micropython">Highlights of Micropython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/micropython.html#why-micropython-lvgl">Why Micropython + LVGL?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#here-are-some-advantages-of-using-lvgl-in-micropython">Here are some advantages of using LVGL in Micropython:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#micropython-lvgl-could-be-used-for">Micropython + LVGL could be used for:</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/micropython.html#so-what-does-it-look-like">So what does it look like?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#a-simple-example">A simple example</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/micropython.html#how-can-i-use-it">How can I use it?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#online-simulator">Online Simulator</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#pc-simulator">PC Simulator</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/micropython.html#embedded-platform">Embedded platform</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/micropython.html#where-can-i-find-more-information">Where can I find more information?</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../get-started/nuttx.html">NuttX RTOS</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../get-started/nuttx.html#what-is-nuttx">What is NuttX?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#highlights-of-nuttx">Highlights of NuttX</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/nuttx.html#why-nuttx-lvgl">Why NuttX + LVGL?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#here-are-some-advantages-of-using-lvgl-in-nuttx">Here are some advantages of using LVGL in NuttX</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#nuttx-lvgl-could-be-used-for">NuttX + LVGL could be used for</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/nuttx.html#how-to-get-started-with-nuttx-and-lvgl">How to get started with NuttX and LVGL?</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#first-you-need-to-install-the-pre-requisite-on-your-system">First you need to install the pre-requisite on your system</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#now-let-s-to-create-a-workspace-to-save-our-files">Now let's to create a workspace to save our files</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#clone-the-nuttx-and-apps-repositories">Clone the NuttX and Apps repositories:</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#configure-nuttx-to-use-the-stm32f429i-disco-board-and-the-lvgl-demo">Configure NuttX to use the stm32f429i-disco board and the LVGL Demo</a></li>
<li class="toctree-l4"><a class="reference internal" href="../get-started/nuttx.html#flashing-the-firmware-in-the-board-using-openocd">Flashing the firmware in the board using OpenOCD:</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../get-started/nuttx.html#where-can-i-find-more-information">Where can I find more information?</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Porting</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="sys.html">System overview</a></li>
<li class="toctree-l2"><a class="reference internal" href="project.html">Set-up a project</a><ul>
<li class="toctree-l3"><a class="reference internal" href="project.html#get-the-library">Get the library</a></li>
<li class="toctree-l3"><a class="reference internal" href="project.html#configuration-file">Configuration file</a></li>
<li class="toctree-l3"><a class="reference internal" href="project.html#initialization">Initialization</a></li>
</ul>
</li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Display interface</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#display-buffer">Display buffer</a></li>
<li class="toctree-l3"><a class="reference internal" href="#display-driver">Display driver</a></li>
<li class="toctree-l3"><a class="reference internal" href="#rotation">Rotation</a></li>
<li class="toctree-l3"><a class="reference internal" href="#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="indev.html">Input device interface</a><ul>
<li class="toctree-l3"><a class="reference internal" href="indev.html#types-of-input-devices">Types of input devices</a><ul>
<li class="toctree-l4"><a class="reference internal" href="indev.html#touchpad-mouse-or-any-pointer">Touchpad, mouse or any pointer</a></li>
<li class="toctree-l4"><a class="reference internal" href="indev.html#keypad-or-keyboard">Keypad or keyboard</a></li>
<li class="toctree-l4"><a class="reference internal" href="indev.html#encoder">Encoder</a></li>
<li class="toctree-l4"><a class="reference internal" href="indev.html#button">Button</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="indev.html#other-features">Other features</a></li>
<li class="toctree-l3"><a class="reference internal" href="indev.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="tick.html">Tick interface</a><ul>
<li class="toctree-l3"><a class="reference internal" href="tick.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="task-handler.html">Task Handler</a></li>
<li class="toctree-l2"><a class="reference internal" href="sleep.html">Sleep management</a></li>
<li class="toctree-l2"><a class="reference internal" href="os.html">Operating system and interrupts</a><ul>
<li class="toctree-l3"><a class="reference internal" href="os.html#tasks-and-threads">Tasks and threads</a></li>
<li class="toctree-l3"><a class="reference internal" href="os.html#interrupts">Interrupts</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="log.html">Logging</a><ul>
<li class="toctree-l3"><a class="reference internal" href="log.html#log-level">Log level</a></li>
<li class="toctree-l3"><a class="reference internal" href="log.html#logging-with-printf">Logging with printf</a></li>
<li class="toctree-l3"><a class="reference internal" href="log.html#custom-log-function">Custom log function</a></li>
<li class="toctree-l3"><a class="reference internal" href="log.html#add-logs">Add logs</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../overview/index.html">Overview</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../overview/object.html">Objects</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/object.html#attributes">Attributes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#basic-attributes">Basic attributes</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#specific-attributes">Specific attributes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/object.html#working-mechanisms">Working mechanisms</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#parent-child-structure">Parent-child structure</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#moving-together">Moving together</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#visibility-only-on-the-parent">Visibility only on the parent</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#create-delete-objects">Create - delete objects</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/object.html#screens">Screens</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#create-screens">Create screens</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#get-the-active-screen">Get the active screen</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#load-screens">Load screens</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/object.html#handling-multiple-displays">Handling multiple displays</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/object.html#parts">Parts</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/object.html#states">States</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/layer.html">Layers</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/layer.html#order-of-creation">Order of creation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/layer.html#bring-to-the-foreground">Bring to the foreground</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/layer.html#top-and-sys-layers">Top and sys layers</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/event.html">Events</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/event.html#event-types">Event types</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/event.html#generic-events">Generic events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/event.html#special-events">Special events</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/event.html#custom-data">Custom data</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/event.html#send-events-manually">Send events manually</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/event.html#arbitrary-events">Arbitrary events</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/event.html#refresh-event">Refresh event</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/style.html">Styles</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#states">States</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#cascading-styles">Cascading styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#inheritance">Inheritance</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#parts">Parts</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#initialize-styles-and-set-get-properties">Initialize styles and set/get properties</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#managing-style-list">Managing style list</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#local-styles">Local styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#transitions">Transitions</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#properties">Properties</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#mixed-properties">Mixed properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#padding-and-margin-properties">Padding and margin properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#background-properties">Background properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#border-properties">Border properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#outline-properties">Outline properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#shadow-properties">Shadow properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#pattern-properties">Pattern properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#value-properties">Value properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#text-properties">Text properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#line-properties">Line properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#image-properties">Image properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#transition-properties">Transition properties</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#scale-properties">Scale properties</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#themes">Themes</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#extending-themes">Extending themes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/style.html#styling-a-button">Styling a button</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/style.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/indev.html">Input devices</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/indev.html#pointers">Pointers</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/indev.html#keypad-and-encoder">Keypad and encoder</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/indev.html#groups">Groups</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/indev.html#styling">Styling</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/indev.html#api">API</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/indev.html#input-device">Input device</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/indev.html#id1">Groups</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/display.html">Displays</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/display.html#multiple-display-support">Multiple display support</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/display.html#using-only-one-display">Using only one display</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/display.html#mirror-display">Mirror display</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/display.html#split-image">Split image</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/display.html#screens">Screens</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/display.html#transparent-screens">Transparent screens</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/display.html#features-of-displays">Features of displays</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/display.html#inactivity">Inactivity</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/display.html#background">Background</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/display.html#colors">Colors</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/display.html#convert-color">Convert color</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/display.html#swap-16-colors">Swap 16 colors</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/display.html#create-and-mix-colors">Create and mix colors</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/display.html#opacity">Opacity</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/display.html#built-in-colors">Built-in colors</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/display.html#api">API</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/display.html#display">Display</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/display.html#id1">Colors</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/font.html">Fonts</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/font.html#unicode-support">Unicode support</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/font.html#built-in-fonts">Built-in fonts</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/font.html#normal-fonts">Normal fonts</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/font.html#special-fonts">Special fonts</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/font.html#special-features">Special features</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/font.html#bidirectional-support">Bidirectional support</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/font.html#arabic-and-persian-support">Arabic and Persian support</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/font.html#subpixel-rendering">Subpixel rendering</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/font.html#compress-fonts">Compress fonts</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/font.html#add-new-font">Add new font</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/font.html#add-new-symbols">Add new symbols</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/font.html#load-font-in-run-time">Load font in run-time</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/font.html#add-a-new-font-engine">Add a new font engine</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/image.html">Images</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/image.html#store-images">Store images</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#variables">Variables</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#files">Files</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/image.html#color-formats">Color formats</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/image.html#add-and-use-images">Add and use images</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#online-converter">Online converter</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#manually-create-an-image">Manually create an image</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#use-images">Use images</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/image.html#image-decoder">Image decoder</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#custom-image-formats">Custom image formats</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#register-an-image-decoder">Register an image decoder</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#manually-use-an-image-decoder">Manually use an image decoder</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/image.html#image-caching">Image caching</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#cache-size">Cache size</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#value-of-images">Value of images</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#memory-usage">Memory usage</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#clean-the-cache">Clean the cache</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../overview/image.html#api">API</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#id1">Image decoder</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#image-cache">Image cache</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#image-buffer">Image buffer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/image.html#image-draw">Image draw</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/file-system.html">File system</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/file-system.html#add-a-driver">Add a driver</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/file-system.html#usage-example">Usage example</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/file-system.html#use-drivers-for-images">Use drivers for images</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/file-system.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/animation.html">Animations</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/animation.html#create-an-animation">Create an animation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/animation.html#animation-path">Animation path</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/animation.html#speed-vs-time">Speed vs time</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/animation.html#delete-animations">Delete animations</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/animation.html#api">API</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/animation.html#input-device">Input device</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/task.html">Tasks</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/task.html#create-a-task">Create a task</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/task.html#ready-and-reset">Ready and Reset</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/task.html#set-parameters">Set parameters</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/task.html#one-shot-tasks">One-shot tasks</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/task.html#measure-idle-time">Measure idle time</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/task.html#asynchronous-calls">Asynchronous calls</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/task.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../overview/drawing.html">Drawing</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../overview/drawing.html#buffering-types">Buffering types</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/drawing.html#mechanism-of-screen-refreshing">Mechanism of screen refreshing</a></li>
<li class="toctree-l3"><a class="reference internal" href="../overview/drawing.html#masking">Masking</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../overview/drawing.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../overview/drawing.html#micropython">MicroPython</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../widgets/index.html">Widgets</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../widgets/obj.html">Base object (lv_obj)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/obj.html#overview">Overview</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#coordinates">Coordinates</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#parents-and-children">Parents and children</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#screens">Screens</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#layers">Layers</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#events">Events</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/obj.html#parts">Parts</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#states">States</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#style">Style</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#attributes">Attributes</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#protect">Protect</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#groups">Groups</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#extended-click-area">Extended click area</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/obj.html#id1">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/obj.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/obj.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/obj.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/obj.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/arc.html">Arc (lv_arc)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/arc.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/arc.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/arc.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/arc.html#angles">Angles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/arc.html#rotation">Rotation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/arc.html#range-and-values">Range and values</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/arc.html#type">Type</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/arc.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/arc.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/arc.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/arc.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/arc.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/arc.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/bar.html">Bar (lv_bar)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/bar.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/bar.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/bar.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/bar.html#value-and-range">Value and range</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/bar.html#modes">Modes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/bar.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/bar.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/bar.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/bar.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/bar.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/bar.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/btn.html">Button (lv_btn)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btn.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btn.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btn.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btn.html#states">States</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btn.html#checkable">Checkable</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btn.html#layout-and-fit">Layout and Fit</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btn.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btn.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btn.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btn.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btn.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btn.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/btnmatrix.html">Button matrix (lv_btnmatrix)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btnmatrix.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btnmatrix.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btnmatrix.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btnmatrix.html#button-s-text">Button's text</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btnmatrix.html#control-buttons">Control buttons</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btnmatrix.html#one-check">One check</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btnmatrix.html#recolor">Recolor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btnmatrix.html#aligning-the-button-s-text">Aligning the button's text</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btnmatrix.html#notes">Notes</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btnmatrix.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btnmatrix.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btnmatrix.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btnmatrix.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/btnmatrix.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/btnmatrix.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/calendar.html">Calendar (lv_calendar)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/calendar.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/calendar.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/calendar.html#usage">Usage</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/calendar.html#id1">Overview</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/calendar.html#current-date">Current date</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/calendar.html#shown-date">Shown date</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/calendar.html#highlighted-days">Highlighted days</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/calendar.html#name-of-the-days">Name of the days</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/calendar.html#name-of-the-months">Name of the months</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/calendar.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/calendar.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/calendar.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/calendar.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/calendar.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/calendar.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/canvas.html">Canvas (lv_canvas)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/canvas.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/canvas.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/canvas.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/canvas.html#buffer">Buffer</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/canvas.html#palette">Palette</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/canvas.html#drawing">Drawing</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/canvas.html#transformations">Transformations</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/canvas.html#blur">Blur</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/canvas.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/canvas.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/canvas.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/canvas.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/canvas.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/canvas.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/checkbox.html">Checkbox (lv_cb)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/checkbox.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/checkbox.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/checkbox.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/checkbox.html#text">Text</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/checkbox.html#check-uncheck">Check/Uncheck</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/checkbox.html#disabled">Disabled</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/checkbox.html#get-set-checkbox-state">Get/Set Checkbox State</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/checkbox.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/checkbox.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/checkbox.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/checkbox.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/checkbox.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/checkbox.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/chart.html">Chart (lv_chart)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/chart.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/chart.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/chart.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#data-series">Data series</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#series-type">Series' type</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#modify-the-data">Modify the data</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#override-default-start-point-for-series">Override default start point for series</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#set-an-external-data-source">Set an external data source</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#get-current-chart-information">Get current chart information</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#update-modes">Update modes</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#number-of-points">Number of points</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#vertical-range">Vertical range</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#division-lines">Division lines</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#tick-marks-and-labels">Tick marks and labels</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#cursor">Cursor</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/chart.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/chart.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/chart.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/chart.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/chart.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/cont.html">Container (lv_cont)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cont.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cont.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cont.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cont.html#layout">Layout</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cont.html#autofit">Autofit</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cont.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cont.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cont.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cont.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cont.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cont.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/cpicker.html">Color picker (lv_cpicker)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cpicker.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cpicker.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cpicker.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cpicker.html#type">Type</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cpicker.html#set-color">Set color</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cpicker.html#color-mode">Color mode</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cpicker.html#knob-color">Knob color</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cpicker.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cpicker.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cpicker.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cpicker.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/cpicker.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/cpicker.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/dropdown.html">Drop-down list (lv_dropdown)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/dropdown.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/dropdown.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/dropdown.html#usage">Usage</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/dropdown.html#id1">Overview</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#set-options">Set options</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#get-selected-option">Get selected option</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#direction">Direction</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#symbol">Symbol</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#maximum-height">Maximum height</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#show-selected">Show selected</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#animation-time">Animation time</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#manually-open-close">Manually open/close</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/dropdown.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/dropdown.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/dropdown.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/dropdown.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/dropdown.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/gauge.html">Gauge (lv_gauge)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/gauge.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/gauge.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/gauge.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/gauge.html#set-value-and-needles">Set value and needles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/gauge.html#scale">Scale</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/gauge.html#range">Range</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/gauge.html#needle-image">Needle image</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/gauge.html#critical-value">Critical value</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/gauge.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/gauge.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/gauge.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/gauge.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/gauge.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/gauge.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/img.html">Image (lv_img)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/img.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/img.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/img.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#image-source">Image source</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#label-as-an-image">Label as an image</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#transparency">Transparency</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#palette-and-alpha-index">Palette and Alpha index</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#recolor">Recolor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#auto-size">Auto-size</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#mosaic">Mosaic</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#offset">Offset</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/img.html#transformations">Transformations</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/img.html#rotate">Rotate</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/img.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/img.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/img.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/img.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/img.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/imgbtn.html">Image button (lv_imgbtn)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/imgbtn.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/imgbtn.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/imgbtn.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/imgbtn.html#image-sources">Image sources</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/imgbtn.html#button-features">Button features</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/imgbtn.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/imgbtn.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/imgbtn.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/imgbtn.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/imgbtn.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/imgbtn.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/keyboard.html">Keyboard (lv_keyboard)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/keyboard.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/keyboard.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/keyboard.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/keyboard.html#modes">Modes</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/keyboard.html#assign-text-area">Assign Text area</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/keyboard.html#new-keymap">New Keymap</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/keyboard.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/keyboard.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/keyboard.html#examples">Examples</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/keyboard.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/keyboard.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/keyboard.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/label.html">Label (lv_label)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/label.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/label.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/label.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/label.html#set-text">Set text</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/label.html#line-break">Line break</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/label.html#long-modes">Long modes</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/label.html#text-align">Text align</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/label.html#text-recolor">Text recolor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/label.html#very-long-texts">Very long texts</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/label.html#symbols">Symbols</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/label.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/label.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/label.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/label.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/label.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/label.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/led.html">LED (lv_led)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/led.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/led.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/led.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/led.html#brightness">Brightness</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/led.html#toggle">Toggle</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/led.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/led.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/led.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/led.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/led.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/led.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/line.html">Line (lv_line)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/line.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/line.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/line.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/line.html#set-points">Set points</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/line.html#auto-size">Auto-size</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/line.html#invert-y">Invert y</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/line.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/line.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/line.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/line.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/line.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/line.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/list.html">List (lv_list)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/list.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/list.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/list.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/list.html#add-buttons">Add buttons</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/list.html#delete-buttons">Delete buttons</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/list.html#manual-navigation">Manual navigation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/list.html#layout">Layout</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/list.html#edge-flash">Edge flash</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/list.html#scroll-propagation">Scroll propagation</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/list.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/list.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/list.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/list.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/list.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/list.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/linemeter.html">Line meter (lv_lmeter)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/linemeter.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/linemeter.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/linemeter.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/linemeter.html#set-value">Set value</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/linemeter.html#range-and-angles">Range and Angles</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/linemeter.html#angle-offset">Angle offset</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/linemeter.html#mirror">Mirror</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/linemeter.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/linemeter.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/linemeter.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/linemeter.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/linemeter.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/linemeter.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/msgbox.html">Message box (lv_msgbox)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/msgbox.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/msgbox.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/msgbox.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/msgbox.html#set-text">Set text</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/msgbox.html#add-buttons">Add buttons</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/msgbox.html#auto-close">Auto-close</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/msgbox.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/msgbox.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/msgbox.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/msgbox.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/msgbox.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/objmask.html">Object mask (lv_objmask)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/objmask.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/objmask.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/objmask.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/objmask.html#adding-mask">Adding mask</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/objmask.html#update-mask">Update mask</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/objmask.html#remove-mask">Remove mask</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/objmask.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/objmask.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/objmask.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/objmask.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/objmask.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/objmask.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/page.html">Page (lv_page)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/page.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/page.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/page.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/page.html#scrollbars">Scrollbars</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/page.html#glue-object">Glue object</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/page.html#focus-object">Focus object</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/page.html#manual-navigation">Manual navigation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/page.html#edge-flash">Edge flash</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/page.html#scroll-propagation">Scroll propagation</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/page.html#clean-the-page">Clean the page</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/page.html#scrollable-api">Scrollable API</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/page.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/page.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/page.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/page.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/page.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/roller.html">Roller (lv_roller)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/roller.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/roller.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/roller.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/roller.html#set-options">Set options</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/roller.html#get-selected-option">Get selected option</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/roller.html#align-the-options">Align the options</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/roller.html#visible-rows">Visible rows</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/roller.html#animation-time">Animation time</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/roller.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/roller.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/roller.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/roller.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/roller.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/roller.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/slider.html">Slider (lv_slider)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/slider.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/slider.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/slider.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/slider.html#value-and-range">Value and range</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/slider.html#symmetrical-and-range">Symmetrical and Range</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/slider.html#knob-only-mode">Knob-only mode</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/slider.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/slider.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/slider.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/slider.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/slider.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/slider.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/spinbox.html">Spinbox (lv_spinbox)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinbox.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinbox.html#parts-and-styles">Parts and Styles</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinbox.html#set-format">Set format</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinbox.html#value-and-ranges">Value and ranges</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinbox.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinbox.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinbox.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinbox.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinbox.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinbox.html#api">API</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinbox.html#id1">Example</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/spinner.html">Spinner (lv_spinner)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinner.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinner.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinner.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinner.html#arc-length">Arc length</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinner.html#spinning-speed">Spinning speed</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinner.html#spin-types">Spin types</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinner.html#spin-direction">Spin direction</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinner.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinner.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinner.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinner.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinner.html#id1">MicroPython</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/spinner.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/spinner.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/switch.html">Switch (lv_switch)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/switch.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/switch.html#parts-and-styles">Parts and Styles</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/switch.html#change-state">Change state</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/switch.html#animation-time">Animation time</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/switch.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/switch.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/switch.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/switch.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/switch.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/switch.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/table.html">Table (lv_table)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/table.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/table.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/table.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#rows-and-columns">Rows and Columns</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#width-and-height">Width and Height</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#set-cell-value">Set cell value</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#align">Align</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#cell-type">Cell type</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#merge-cells">Merge cells</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#crop-text">Crop text</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#scroll">Scroll</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/table.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/table.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/table.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#id1">MicroPython</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/table.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/table.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/tabview.html">Tabview (lv_tabview)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tabview.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tabview.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tabview.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tabview.html#adding-tab">Adding tab</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tabview.html#change-tab">Change tab</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tabview.html#change-tab-s-name">Change tab's name</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tabview.html#tab-button-s-position">Tab button's position</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tabview.html#animation-time">Animation time</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tabview.html#scroll-propagation">Scroll propagation</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tabview.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tabview.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tabview.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tabview.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tabview.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tabview.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/textarea.html">Text area (lv_textarea)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/textarea.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/textarea.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/textarea.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#add-text">Add text</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#placeholder">Placeholder</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#delete-character">Delete character</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#move-the-cursor">Move the cursor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#hide-the-cursor">Hide the cursor</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#cursor-blink-time">Cursor blink time</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#one-line-mode">One line mode</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#password-mode">Password mode</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#text-align">Text align</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#accepted-characters">Accepted characters</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#max-text-length">Max text length</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#very-long-texts">Very long texts</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#select-text">Select text</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#scrollbars">Scrollbars</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#scroll-propagation">Scroll propagation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#edge-flash">Edge flash</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/textarea.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/textarea.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/textarea.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/textarea.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/textarea.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/tileview.html">Tile view (lv_tileview)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tileview.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tileview.html#parts-and-styles">Parts and Styles</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tileview.html#usage">Usage</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tileview.html#valid-positions">Valid positions</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tileview.html#set-tile">Set tile</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tileview.html#add-element">Add element</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tileview.html#scroll-propagation">Scroll propagation</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tileview.html#animation-time">Animation time</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tileview.html#edge-flash">Edge flash</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tileview.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tileview.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tileview.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tileview.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/tileview.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/tileview.html#api">API</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../widgets/win.html">Window (lv_win)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../widgets/win.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/win.html#parts-and-styles">Parts and Styles</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/win.html#title">Title</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/win.html#control-buttons">Control buttons</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/win.html#scrollbars">Scrollbars</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/win.html#manual-scroll-and-focus">Manual scroll and focus</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/win.html#layout">Layout</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/win.html#events">Events</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/win.html#keys">Keys</a></li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/win.html#example">Example</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../widgets/win.html#c">C</a></li>
<li class="toctree-l4"><a class="reference internal" href="../widgets/win.html#micropython">MicroPython</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../widgets/win.html#api">API</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../contributing/index.html">Contributing</a><ul>
<li class="toctree-l2"><a class="reference internal" href="../contributing/index.html#introduction">Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="../contributing/index.html#pull-request">Pull request</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#from-github">From GitHub</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#from-command-line">From command line</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../contributing/index.html#developer-certification-of-origin-dco">Developer Certification of Origin (DCO)</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#overview">Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#accepted-licenses-and-copyright-notices">Accepted licenses and copyright notices</a><ul>
<li class="toctree-l4"><a class="reference internal" href="../contributing/index.html#your-own-work">Your own work</a></li>
<li class="toctree-l4"><a class="reference internal" href="../contributing/index.html#use-code-from-online-source">Use code from online source</a></li>
<li class="toctree-l4"><a class="reference internal" href="../contributing/index.html#use-mit-licensed-code">Use MIT licensed code</a></li>
<li class="toctree-l4"><a class="reference internal" href="../contributing/index.html#use-gpl-licensed-code">Use GPL licensed code</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../contributing/index.html#when-you-get-started-with-lvgl">When you get started with LVGL</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#give-lvgl-a-star">Give LVGL a Star</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#tell-what-you-have-achieved">Tell what you have achieved</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#write-examples">Write examples</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#improve-the-docs">Improve the docs</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#translate-the-docs">Translate the docs</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#write-a-blog-post">Write a blog post</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../contributing/index.html#when-you-already-use-lvgl">When you already use LVGL</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#give-feedback">Give feedback</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#report-bugs">Report bugs</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#send-fixes">Send fixes</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#join-the-conversations-in-the-forum">Join the conversations in the Forum</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#add-features">Add features</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../contributing/index.html#when-you-are-confident-with-lvgl">When you are confident with LVGL</a><ul>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#become-a-maintainer">Become a maintainer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../contributing/index.html#move-your-project-repository-under-lvgl-organization">Move your project repository under LVGL organization</a></li>
</ul>
</li>
</ul>
</li>
</ul>

            
          
        </div>
        
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../index.html">LVGL</a>
        
      </nav>


      <div class="wy-nav-content">
        
        <div class="rst-content">
        
          

















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="../index.html" class="icon icon-home"></a> &raquo;</li>
        
          <li><a href="index.html">Porting</a> &raquo;</li>
        
      <li>Display interface</li>
    
    
      <li class="wy-breadcrumbs-aside">
        
            
            
              <!-- User defined GitHub URL -->
              <a href="https://github.com/lvgl/docs/blob/latest/porting/display.md" class="fa fa-github"> Edit on GitHub</a>
            
          
        
      </li>
    
  </ul>

  
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="display-interface">
<h1>Display interface<a class="headerlink" href="#display-interface" title="Permalink to this headline">¶</a></h1>
<p>To set up a display an <code class="docutils literal notranslate"><span class="pre">lv_disp_buf_t</span></code> and an <code class="docutils literal notranslate"><span class="pre">lv_disp_drv_t</span></code> variables have to be initialized.</p>
<ul class="simple">
<li><p><strong>lv_disp_buf_t</strong> contains internal graphic buffer(s).</p></li>
<li><p><strong>lv_disp_drv_t</strong> contains callback functions to interact with the display and manipulate drawing related things.</p></li>
</ul>
<div class="section" id="display-buffer">
<h2>Display buffer<a class="headerlink" href="#display-buffer" title="Permalink to this headline">¶</a></h2>
<p><code class="docutils literal notranslate"><span class="pre">lv_disp_buf_t</span></code> can be initialized like this:</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span>    <span class="cm">/*A static or global variable to store the buffers*/</span>
    <span class="k">static</span> <span class="n">lv_disp_buf_t</span> <span class="n">disp_buf</span><span class="p">;</span>

    <span class="cm">/*Static or global buffer(s). The second buffer is optional*/</span>
    <span class="k">static</span> <span class="n">lv_color_t</span> <span class="n">buf_1</span><span class="p">[</span><span class="n">MY_DISP_HOR_RES</span> <span class="o">*</span> <span class="mi">10</span><span class="p">];</span>
    <span class="k">static</span> <span class="n">lv_color_t</span> <span class="n">buf_2</span><span class="p">[</span><span class="n">MY_DISP_HOR_RES</span> <span class="o">*</span> <span class="mi">10</span><span class="p">];</span>

    <span class="cm">/*Initialize `disp_buf` with the buffer(s) */</span>
    <span class="n">lv_disp_buf_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">disp_buf</span><span class="p">,</span> <span class="n">buf_1</span><span class="p">,</span> <span class="n">buf_2</span><span class="p">,</span> <span class="n">MY_DISP_HOR_RES</span><span class="o">*</span><span class="mi">10</span><span class="p">);</span>
</pre></div>
</div>
<p>There are 3 possible configurations regarding the buffer size:</p>
<ol class="simple">
<li><p><strong>One buffer</strong> LVGL draws the content of the screen into a buffer and sends it to the display.
The buffer can be smaller than the screen. In this case, the larger areas will be redrawn in multiple parts.
If only small areas changes (e.g. button press) then only those areas will be refreshed.</p></li>
<li><p><strong>Two non-screen-sized buffers</strong> having two buffers LVGL can draw into one buffer while the content of the other buffer is sent to display in the background.
DMA or other hardware should be used to transfer the data to the display to let the CPU draw meanwhile.
This way the rendering and refreshing of the display become parallel.
Similarly to the <em>One buffer</em>, LVGL will draw the display's content in chunks if the buffer is smaller than the area to refresh.</p></li>
<li><p><strong>Two screen-sized buffers</strong>.
In contrast to <em>Two non-screen-sized buffers</em> LVGL will always provide the whole screen's content not only chunks.
This way the driver can simply change the address of the frame buffer to the buffer received from LVGL.
Therefore this method works the best when the MCU has an LCD/TFT interface and the frame buffer is just a location in the RAM.</p></li>
</ol>
<p>You can measure the performance of your display configuration using the <a class="reference external" href="https://github.com/lvgl/lv_examples/tree/master/src/lv_demo_benchmark">benchmark example</a>.</p>
</div>
<div class="section" id="display-driver">
<h2>Display driver<a class="headerlink" href="#display-driver" title="Permalink to this headline">¶</a></h2>
<p>Once the buffer initialization is ready the display drivers need to be initialized. In the most simple case only the following two fields of <code class="docutils literal notranslate"><span class="pre">lv_disp_drv_t</span></code> needs to be set:</p>
<ul class="simple">
<li><p><strong>buffer</strong> pointer to an initialized <code class="docutils literal notranslate"><span class="pre">lv_disp_buf_t</span></code> variable.</p></li>
<li><p><strong>flush_cb</strong> a callback function to copy a buffer's content to a specific area of the display. <code class="docutils literal notranslate"><span class="pre">lv_disp_flush_ready()</span></code> needs to be called when flushing is ready. LVGL might render the screen in multiple chunks and therefore call <code class="docutils literal notranslate"><span class="pre">flush_cb</span></code> multiple times. To see which is the last chunk of rendering use <code class="docutils literal notranslate"><span class="pre">lv_disp_flush_is_last()</span></code>.</p></li>
</ul>
<p>There are some optional data fields:</p>
<ul class="simple">
<li><p><strong>hor_res</strong> horizontal resolution of the display. (<code class="docutils literal notranslate"><span class="pre">LV_HOR_RES_MAX</span></code> by default from <em>lv_conf.h</em>).</p></li>
<li><p><strong>ver_res</strong> vertical resolution of the display. (<code class="docutils literal notranslate"><span class="pre">LV_VER_RES_MAX</span></code> by default from <em>lv_conf.h</em>).</p></li>
<li><p><strong>color_chroma_key</strong> a color which will be drawn as transparent on chrome keyed images. <code class="docutils literal notranslate"><span class="pre">LV_COLOR_TRANSP</span></code> by default from <em>lv_conf.h</em>).</p></li>
<li><p><strong>user_data</strong> custom user data for the driver. Its type can be modified in lv_conf.h.</p></li>
<li><p><strong>anti-aliasing</strong> use anti-aliasing (edge smoothing). <code class="docutils literal notranslate"><span class="pre">LV_ANTIALIAS</span></code> by default  from <em>lv_conf.h</em>.</p></li>
<li><p><strong>rotated</strong> and <strong>sw_rotate</strong> See the <a class="reference external" href="#rotation">rotation</a> section below.</p></li>
<li><p><strong>screen_transp</strong> if <code class="docutils literal notranslate"><span class="pre">1</span></code> the screen can have transparent or opaque style. <code class="docutils literal notranslate"><span class="pre">LV_COLOR_SCREEN_TRANSP</span></code> needs to enabled in <em>lv_conf.h</em>.</p></li>
</ul>
<p>To use a GPU the following callbacks can be used:</p>
<ul class="simple">
<li><p><strong>gpu_fill_cb</strong> fill an area in memory with colors.</p></li>
<li><p><strong>gpu_blend_cb</strong> blend two memory buffers using opacity.</p></li>
<li><p><strong>gpu_wait_cb</strong> if any GPU function return, while the GPU is still working LVGL, will use this function when required the be sure GPU rendering is ready.</p></li>
</ul>
<p>Note that, these functions need to draw to the memory (RAM) and not your display directly.</p>
<p>Some other optional callbacks to make easier and more optimal to work with monochrome, grayscale or other non-standard RGB displays:</p>
<ul class="simple">
<li><p><strong>rounder_cb</strong> round the coordinates of areas to redraw. E.g. a 2x2 px can be converted to 2x8.
It can be used if the display controller can refresh only areas with specific height or width (usually 8 px height with monochrome displays).</p></li>
<li><p><strong>set_px_cb</strong> a custom function to write the <em>display buffer</em>.
It can be used to store the pixels more compactly if the display has a special color format. (e.g. 1-bit monochrome, 2-bit grayscale etc.)
This way the buffers used in <code class="docutils literal notranslate"><span class="pre">lv_disp_buf_t</span></code> can be smaller to hold only the required number of bits for the given area size. <code class="docutils literal notranslate"><span class="pre">set_px_cb</span></code> is not working with <code class="docutils literal notranslate"><span class="pre">Two</span> <span class="pre">screen-sized</span> <span class="pre">buffers</span></code> display buffer configuration.</p></li>
<li><p><strong>monitor_cb</strong> a callback function tells how many pixels were refreshed in how much time.</p></li>
<li><p><strong>clean_dcache_cb</strong> a callback for cleaning any caches related to the display</p></li>
</ul>
<p>To set the fields of <em>lv_disp_drv_t</em> variable it needs to be initialized with <code class="docutils literal notranslate"><span class="pre">lv_disp_drv_init(&amp;disp_drv)</span></code>.
And finally to register a display for LVGL <code class="docutils literal notranslate"><span class="pre">lv_disp_drv_register(&amp;disp_drv)</span></code> needs to be called.</p>
<p>All together it looks like this:</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span>    <span class="n">lv_disp_drv_t</span> <span class="n">disp_drv</span><span class="p">;</span>                 <span class="cm">/*A variable to hold the drivers. Can be local variable*/</span>
    <span class="n">lv_disp_drv_init</span><span class="p">(</span><span class="o">&amp;</span><span class="n">disp_drv</span><span class="p">);</span>            <span class="cm">/*Basic initialization*/</span>
    <span class="n">disp_drv</span><span class="p">.</span><span class="n">buffer</span> <span class="o">=</span> <span class="o">&amp;</span><span class="n">disp_buf</span><span class="p">;</span>            <span class="cm">/*Set an initialized buffer*/</span>
    <span class="n">disp_drv</span><span class="p">.</span><span class="n">flush_cb</span> <span class="o">=</span> <span class="n">my_flush_cb</span><span class="p">;</span>        <span class="cm">/*Set a flush callback to draw to the display*/</span>
    <span class="n">lv_disp_t</span> <span class="o">*</span> <span class="n">disp</span><span class="p">;</span>
    <span class="n">disp</span> <span class="o">=</span> <span class="n">lv_disp_drv_register</span><span class="p">(</span><span class="o">&amp;</span><span class="n">disp_drv</span><span class="p">);</span> <span class="cm">/*Register the driver and save the created display objects*/</span>
</pre></div>
</div>
<p>Here some simple examples of the callbacks:</p>
<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="kt">void</span> <span class="nf">my_flush_cb</span><span class="p">(</span><span class="n">lv_disp_drv_t</span> <span class="o">*</span> <span class="n">disp_drv</span><span class="p">,</span> <span class="k">const</span> <span class="n">lv_area_t</span> <span class="o">*</span> <span class="n">area</span><span class="p">,</span> <span class="n">lv_color_t</span> <span class="o">*</span> <span class="n">color_p</span><span class="p">)</span>
<span class="p">{</span>
    <span class="cm">/*The most simple case (but also the slowest) to put all pixels to the screen one-by-one*/</span>
    <span class="kt">int32_t</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(</span><span class="n">y</span> <span class="o">=</span> <span class="n">area</span><span class="o">-&gt;</span><span class="n">y1</span><span class="p">;</span> <span class="n">y</span> <span class="o">&lt;=</span> <span class="n">area</span><span class="o">-&gt;</span><span class="n">y2</span><span class="p">;</span> <span class="n">y</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span><span class="p">(</span><span class="n">x</span> <span class="o">=</span> <span class="n">area</span><span class="o">-&gt;</span><span class="n">x1</span><span class="p">;</span> <span class="n">x</span> <span class="o">&lt;=</span> <span class="n">area</span><span class="o">-&gt;</span><span class="n">x2</span><span class="p">;</span> <span class="n">x</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">put_px</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">,</span> <span class="o">*</span><span class="n">color_p</span><span class="p">)</span>
            <span class="n">color_p</span><span class="o">++</span><span class="p">;</span>
        <span class="p">}</span>
    <span class="p">}</span>

    <span class="cm">/* IMPORTANT!!!</span>
<span class="cm">     * Inform the graphics library that you are ready with the flushing*/</span>
    <span class="n">lv_disp_flush_ready</span><span class="p">(</span><span class="n">disp_drv</span><span class="p">);</span>
<span class="p">}</span>

<span class="kt">void</span> <span class="nf">my_gpu_fill_cb</span><span class="p">(</span><span class="n">lv_disp_drv_t</span> <span class="o">*</span> <span class="n">disp_drv</span><span class="p">,</span> <span class="n">lv_color_t</span> <span class="o">*</span> <span class="n">dest_buf</span><span class="p">,</span> <span class="k">const</span> <span class="n">lv_area_t</span> <span class="o">*</span> <span class="n">dest_area</span><span class="p">,</span> <span class="k">const</span> <span class="n">lv_area_t</span> <span class="o">*</span> <span class="n">fill_area</span><span class="p">,</span> <span class="n">lv_color_t</span> <span class="n">color</span><span class="p">);</span>
<span class="p">{</span>
    <span class="cm">/*It&#39;s an example code which should be done by your GPU*/</span>
    <span class="kt">uint32_t</span> <span class="n">x</span><span class="p">,</span> <span class="n">y</span><span class="p">;</span>
    <span class="n">dest_buf</span> <span class="o">+=</span> <span class="n">dest_width</span> <span class="o">*</span> <span class="n">fill_area</span><span class="o">-&gt;</span><span class="n">y1</span><span class="p">;</span> <span class="cm">/*Go to the first line*/</span>

    <span class="k">for</span><span class="p">(</span><span class="n">y</span> <span class="o">=</span> <span class="n">fill_area</span><span class="o">-&gt;</span><span class="n">y1</span><span class="p">;</span> <span class="n">y</span> <span class="o">&lt;</span> <span class="n">fill_area</span><span class="o">-&gt;</span><span class="n">y2</span><span class="p">;</span> <span class="n">y</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="k">for</span><span class="p">(</span><span class="n">x</span> <span class="o">=</span> <span class="n">fill_area</span><span class="o">-&gt;</span><span class="n">x1</span><span class="p">;</span> <span class="n">x</span> <span class="o">&lt;</span> <span class="n">fill_area</span><span class="o">-&gt;</span><span class="n">x2</span><span class="p">;</span> <span class="n">x</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
            <span class="n">dest_buf</span><span class="p">[</span><span class="n">x</span><span class="p">]</span> <span class="o">=</span> <span class="n">color</span><span class="p">;</span>
        <span class="p">}</span>
        <span class="n">dest_buf</span><span class="o">+=</span><span class="n">dest_width</span><span class="p">;</span>    <span class="cm">/*Go to the next line*/</span>
    <span class="p">}</span>
<span class="p">}</span>

<span class="kt">void</span> <span class="n">my_gpu_blend_cb</span><span class="p">(</span><span class="n">lv_disp_drv_t</span> <span class="o">*</span> <span class="n">disp_drv</span><span class="p">,</span> <span class="n">lv_color_t</span> <span class="o">*</span> <span class="n">dest</span><span class="p">,</span> <span class="k">const</span> <span class="n">lv_color_t</span> <span class="o">*</span> <span class="n">src</span><span class="p">,</span> <span class="kt">uint32_t</span> <span class="n">length</span><span class="p">,</span> <span class="n">lv_opa_t</span> <span class="n">opa</span><span class="p">)</span>
<span class="p">{</span>
    <span class="cm">/*It&#39;s an example code which should be done by your GPU*/</span>
    <span class="kt">uint32_t</span> <span class="n">i</span><span class="p">;</span>
    <span class="k">for</span><span class="p">(</span><span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="n">length</span><span class="p">;</span> <span class="n">i</span><span class="o">++</span><span class="p">)</span> <span class="p">{</span>
        <span class="n">dest</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">=</span> <span class="n">lv_color_mix</span><span class="p">(</span><span class="n">dest</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">src</span><span class="p">[</span><span class="n">i</span><span class="p">],</span> <span class="n">opa</span><span class="p">);</span>
    <span class="p">}</span>
<span class="p">}</span>

<span class="kt">void</span> <span class="n">my_rounder_cb</span><span class="p">(</span><span class="n">lv_disp_drv_t</span> <span class="o">*</span> <span class="n">disp_drv</span><span class="p">,</span> <span class="n">lv_area_t</span> <span class="o">*</span> <span class="n">area</span><span class="p">)</span>
<span class="p">{</span>
  <span class="cm">/* Update the areas as needed. Can be only larger.</span>
<span class="cm">   * For example to always have lines 8 px height:*/</span>
   <span class="n">area</span><span class="o">-&gt;</span><span class="n">y1</span> <span class="o">=</span> <span class="n">area</span><span class="o">-&gt;</span><span class="n">y1</span> <span class="o">&amp;</span> <span class="mh">0x07</span><span class="p">;</span>
   <span class="n">area</span><span class="o">-&gt;</span><span class="n">y2</span> <span class="o">=</span> <span class="p">(</span><span class="n">area</span><span class="o">-&gt;</span><span class="n">y2</span> <span class="o">&amp;</span> <span class="mh">0x07</span><span class="p">)</span> <span class="o">+</span> <span class="mi">8</span><span class="p">;</span>
<span class="p">}</span>

<span class="kt">void</span> <span class="n">my_set_px_cb</span><span class="p">(</span><span class="n">lv_disp_drv_t</span> <span class="o">*</span> <span class="n">disp_drv</span><span class="p">,</span> <span class="kt">uint8_t</span> <span class="o">*</span> <span class="n">buf</span><span class="p">,</span> <span class="n">lv_coord_t</span> <span class="n">buf_w</span><span class="p">,</span> <span class="n">lv_coord_t</span> <span class="n">x</span><span class="p">,</span> <span class="n">lv_coord_t</span> <span class="n">y</span><span class="p">,</span> <span class="n">lv_color_t</span> <span class="n">color</span><span class="p">,</span> <span class="n">lv_opa_t</span> <span class="n">opa</span><span class="p">)</span>
<span class="p">{</span>
    <span class="cm">/* Write to the buffer as required for the display.</span>
<span class="cm">     * Write only 1-bit for monochrome displays mapped vertically:*/</span>
 <span class="n">buf</span> <span class="o">+=</span> <span class="n">buf_w</span> <span class="o">*</span> <span class="p">(</span><span class="n">y</span> <span class="o">&gt;&gt;</span> <span class="mi">3</span><span class="p">)</span> <span class="o">+</span> <span class="n">x</span><span class="p">;</span>
 <span class="k">if</span><span class="p">(</span><span class="n">lv_color_brightness</span><span class="p">(</span><span class="n">color</span><span class="p">)</span> <span class="o">&gt;</span> <span class="mi">128</span><span class="p">)</span> <span class="p">(</span><span class="o">*</span><span class="n">buf</span><span class="p">)</span> <span class="o">|=</span> <span class="p">(</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="p">(</span><span class="n">y</span> <span class="o">%</span> <span class="mi">8</span><span class="p">));</span>
 <span class="k">else</span> <span class="p">(</span><span class="o">*</span><span class="n">buf</span><span class="p">)</span> <span class="o">&amp;=</span> <span class="o">~</span><span class="p">(</span><span class="mi">1</span> <span class="o">&lt;&lt;</span> <span class="p">(</span><span class="n">y</span> <span class="o">%</span> <span class="mi">8</span><span class="p">));</span>
<span class="p">}</span>

<span class="kt">void</span> <span class="n">my_monitor_cb</span><span class="p">(</span><span class="n">lv_disp_drv_t</span> <span class="o">*</span> <span class="n">disp_drv</span><span class="p">,</span> <span class="kt">uint32_t</span> <span class="n">time</span><span class="p">,</span> <span class="kt">uint32_t</span> <span class="n">px</span><span class="p">)</span>
<span class="p">{</span>
  <span class="n">printf</span><span class="p">(</span><span class="s">&quot;%d px refreshed in %d ms</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span> <span class="n">time</span><span class="p">,</span> <span class="n">ms</span><span class="p">);</span>
<span class="p">}</span>

<span class="kt">void</span> <span class="n">my_clean_dcache_cb</span><span class="p">(</span><span class="n">lv_disp_drv_t</span> <span class="o">*</span> <span class="n">disp_drv</span><span class="p">,</span> <span class="n">uint32</span><span class="p">)</span>
<span class="p">{</span>
  <span class="cm">/* Example for Cortex-M (CMSIS) */</span>
  <span class="n">SCB_CleanInvalidateDCache</span><span class="p">();</span>
<span class="p">}</span>
</pre></div>
</div>
</div>
<div class="section" id="rotation">
<h2>Rotation<a class="headerlink" href="#rotation" title="Permalink to this headline">¶</a></h2>
<p>LVGL supports rotation of the display in 90 degree increments. You can select whether you'd like software rotation or hardware rotation.</p>
<p>If you select software rotation (<code class="docutils literal notranslate"><span class="pre">sw_rotate</span></code> flag set to 1), LVGL will perform the rotation for you. Your driver can and should assume that the screen width and height have not changed. Simply flush pixels to the display as normal. Software rotation requires no additional logic in your <code class="docutils literal notranslate"><span class="pre">flush_cb</span></code> callback.</p>
<p>There is a noticeable amount of overhead to performing rotation in software, which is why hardware rotation is also available. In this mode, LVGL draws into the buffer as though your screen now has the width and height inverted. You are responsible for rotating the provided pixels yourself.</p>
<p>The default rotation of your display when it is initialized can be set using the <code class="docutils literal notranslate"><span class="pre">rotated</span></code> flag. The available options are <code class="docutils literal notranslate"><span class="pre">LV_DISP_ROT_NONE</span></code>, <code class="docutils literal notranslate"><span class="pre">LV_DISP_ROT_90</span></code>, <code class="docutils literal notranslate"><span class="pre">LV_DISP_ROT_180</span></code>, or <code class="docutils literal notranslate"><span class="pre">LV_DISP_ROT_270</span></code>. The rotation values are relative to how you would rotate the physical display in the clockwise direction. Thus, <code class="docutils literal notranslate"><span class="pre">LV_DISP_ROT_90</span></code> means you rotate the hardware 90 degrees clockwise, and the display rotates 90 degrees counterclockwise to compensate.</p>
<p>(Note for users upgrading from 7.10.0 and older: these new rotation enum values match up with the old 0/1 system for rotating 90 degrees, so legacy code should continue to work as expected. Software rotation is also disabled by default for compatibility.)</p>
<p>Display rotation can also be changed at runtime using the <code class="docutils literal notranslate"><span class="pre">lv_disp_set_rotation(disp,</span> <span class="pre">rot)</span></code> API.</p>
<p>Support for software rotation is a new feature, so there may be some glitches/bugs depending on your configuration. If you encounter a problem please open an issue on <a class="reference external" href="https://github.com/lvgl/lvgl/issues">GitHub</a>.</p>
</div>
<div class="section" id="api">
<h2>API<a class="headerlink" href="#api" title="Permalink to this headline">¶</a></h2>
<p>Display Driver HAL interface header file </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-typedefs">Typedefs</p>
<dl class="cpp type">
<dt id="_CPPv413lv_disp_drv_t">
<span id="_CPPv313lv_disp_drv_t"></span><span id="_CPPv213lv_disp_drv_t"></span><span id="lv_disp_drv_t"></span><span class="target" id="lv__hal__disp_8h_1ae0df046fe59b16094a051e0b8bce40dc"></span><em class="property"><span class="pre">typedef</span> </em><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv411_disp_drv_t" title="_disp_drv_t"><span class="pre">_disp_drv_t</span></a> <code class="sig-name descname"><span class="pre">lv_disp_drv_t</span></code><a class="headerlink" href="#_CPPv413lv_disp_drv_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Display Driver structure to be registered by HAL </p>
</dd></dl>

<dl class="cpp type">
<dt id="_CPPv49lv_disp_t">
<span id="_CPPv39lv_disp_t"></span><span id="_CPPv29lv_disp_t"></span><span id="lv_disp_t"></span><span class="target" id="lv__hal__disp_8h_1a9d29d2918fd1d6117739da09a12b1e90"></span><em class="property"><span class="pre">typedef</span> </em><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv47_disp_t" title="_disp_t"><span class="pre">_disp_t</span></a> <code class="sig-name descname"><span class="pre">lv_disp_t</span></code><a class="headerlink" href="#_CPPv49lv_disp_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Display structure. </p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p><code class="docutils literal notranslate"><span class="pre">lv_disp_drv_t</span></code> should be the first member of the structure. </p>
</div>
</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-enums">Enums</p>
<dl class="cpp enum">
<dt id="_CPPv414lv_disp_size_t">
<span id="_CPPv314lv_disp_size_t"></span><span id="_CPPv214lv_disp_size_t"></span><span class="target" id="lv__hal__disp_8h_1a32c0c92ef12d8a2fea6b566bb6803e47"></span><em class="property"><span class="pre">enum</span> </em><code class="sig-name descname"><span class="pre">lv_disp_size_t</span></code><a class="headerlink" href="#_CPPv414lv_disp_size_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p><em>Values:</em></p>
<dl class="cpp enumerator">
<dt id="_CPPv4N14lv_disp_size_t18LV_DISP_SIZE_SMALLE">
<span id="_CPPv3N14lv_disp_size_t18LV_DISP_SIZE_SMALLE"></span><span id="_CPPv2N14lv_disp_size_t18LV_DISP_SIZE_SMALLE"></span><span class="target" id="lv__hal__disp_8h_1a32c0c92ef12d8a2fea6b566bb6803e47a4e3d75c8bfce8203bd864fa7536deb07"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_DISP_SIZE_SMALL</span></code><a class="headerlink" href="#_CPPv4N14lv_disp_size_t18LV_DISP_SIZE_SMALLE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4N14lv_disp_size_t19LV_DISP_SIZE_MEDIUME">
<span id="_CPPv3N14lv_disp_size_t19LV_DISP_SIZE_MEDIUME"></span><span id="_CPPv2N14lv_disp_size_t19LV_DISP_SIZE_MEDIUME"></span><span class="target" id="lv__hal__disp_8h_1a32c0c92ef12d8a2fea6b566bb6803e47a957aec1a276bbae76a49fbeeecc45051"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_DISP_SIZE_MEDIUM</span></code><a class="headerlink" href="#_CPPv4N14lv_disp_size_t19LV_DISP_SIZE_MEDIUME" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4N14lv_disp_size_t18LV_DISP_SIZE_LARGEE">
<span id="_CPPv3N14lv_disp_size_t18LV_DISP_SIZE_LARGEE"></span><span id="_CPPv2N14lv_disp_size_t18LV_DISP_SIZE_LARGEE"></span><span class="target" id="lv__hal__disp_8h_1a32c0c92ef12d8a2fea6b566bb6803e47ac1f3bebe30b23a7d77fb5967bf4dc561"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_DISP_SIZE_LARGE</span></code><a class="headerlink" href="#_CPPv4N14lv_disp_size_t18LV_DISP_SIZE_LARGEE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp enumerator">
<dt id="_CPPv4N14lv_disp_size_t24LV_DISP_SIZE_EXTRA_LARGEE">
<span id="_CPPv3N14lv_disp_size_t24LV_DISP_SIZE_EXTRA_LARGEE"></span><span id="_CPPv2N14lv_disp_size_t24LV_DISP_SIZE_EXTRA_LARGEE"></span><span class="target" id="lv__hal__disp_8h_1a32c0c92ef12d8a2fea6b566bb6803e47ac88a22fa15eae27406ce12ba713124b6"></span><em class="property"><span class="pre">enumerator</span> </em><code class="sig-name descname"><span class="pre">LV_DISP_SIZE_EXTRA_LARGE</span></code><a class="headerlink" href="#_CPPv4N14lv_disp_size_t24LV_DISP_SIZE_EXTRA_LARGEE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

</dd></dl>

</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
<dl class="cpp function">
<dt id="_CPPv416lv_disp_drv_initP13lv_disp_drv_t">
<span id="_CPPv316lv_disp_drv_initP13lv_disp_drv_t"></span><span id="_CPPv216lv_disp_drv_initP13lv_disp_drv_t"></span><span id="lv_disp_drv_init__lv_disp_drv_tP"></span><span class="target" id="lv__hal__disp_8h_1a2a24b30cf6089a3d319bfa624e224894"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_disp_drv_init</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv413lv_disp_drv_t" title="lv_disp_drv_t"><span class="pre">lv_disp_drv_t</span></a> <span class="pre">*</span><em><span class="pre">driver</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv416lv_disp_drv_initP13lv_disp_drv_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Initialize a display driver with default values. It is used to have known values in the fields and not junk in memory. After it you can safely set only the fields you need. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>driver</strong> -- pointer to driver variable to initialize </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv416lv_disp_buf_initP13lv_disp_buf_tPvPv8uint32_t">
<span id="_CPPv316lv_disp_buf_initP13lv_disp_buf_tPvPv8uint32_t"></span><span id="_CPPv216lv_disp_buf_initP13lv_disp_buf_tPvPv8uint32_t"></span><span id="lv_disp_buf_init__lv_disp_buf_tP.voidP.voidP.uint32_t"></span><span class="target" id="lv__hal__disp_8h_1a31bfd68c610a609777fe22c30ce70f69"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_disp_buf_init</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv413lv_disp_buf_t" title="lv_disp_buf_t"><span class="pre">lv_disp_buf_t</span></a> <span class="pre">*</span><em><span class="pre">disp_buf</span></em>, <span class="pre">void</span> <span class="pre">*</span><em><span class="pre">buf1</span></em>, <span class="pre">void</span> <span class="pre">*</span><em><span class="pre">buf2</span></em>, <span class="pre">uint32_t</span> <em><span class="pre">size_in_px_cnt</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv416lv_disp_buf_initP13lv_disp_buf_tPvPv8uint32_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Initialize a display buffer </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>disp_buf</strong> -- pointer <code class="docutils literal notranslate"><a class="reference internal" href="#structlv__disp__buf__t"><span class="std std-ref"><span class="pre">lv_disp_buf_t</span></span></a></code> variable to initialize </p></li>
<li><p><strong>buf1</strong> -- A buffer to be used by LVGL to draw the image. Always has to specified and can't be NULL. Can be an array allocated by the user. E.g. <code class="docutils literal notranslate"><span class="pre">static</span> <span class="pre">lv_color_t</span> <span class="pre">disp_buf1[1024</span> <span class="pre">*</span> <span class="pre">10]</span></code> Or a memory address e.g. in external SRAM </p></li>
<li><p><strong>buf2</strong> -- Optionally specify a second buffer to make image rendering and image flushing (sending to the display) parallel. In the <code class="docutils literal notranslate"><span class="pre">disp_drv-&gt;flush</span></code> you should use DMA or similar hardware to send the image to the display in the background. It lets LVGL to render next frame into the other buffer while previous is being sent. Set to <code class="docutils literal notranslate"><span class="pre">NULL</span></code> if unused. </p></li>
<li><p><strong>size_in_px_cnt</strong> -- size of the <code class="docutils literal notranslate"><span class="pre">buf1</span></code> and <code class="docutils literal notranslate"><span class="pre">buf2</span></code> in pixel count. </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv420lv_disp_drv_registerP13lv_disp_drv_t">
<span id="_CPPv320lv_disp_drv_registerP13lv_disp_drv_t"></span><span id="_CPPv220lv_disp_drv_registerP13lv_disp_drv_t"></span><span id="lv_disp_drv_register__lv_disp_drv_tP"></span><span class="target" id="lv__hal__disp_8h_1ac0597fcee8b04c6c9b4fa7667da2e218"></span><a class="reference internal" href="#_CPPv49lv_disp_t" title="lv_disp_t"><span class="pre">lv_disp_t</span></a> <span class="pre">*</span><code class="sig-name descname"><span class="pre">lv_disp_drv_register</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv413lv_disp_drv_t" title="lv_disp_drv_t"><span class="pre">lv_disp_drv_t</span></a> <span class="pre">*</span><em><span class="pre">driver</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv420lv_disp_drv_registerP13lv_disp_drv_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Register an initialized display driver. Automatically set the first display as active. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>driver</strong> -- pointer to an initialized 'lv_disp_drv_t' variable (can be local variable) </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>pointer to the new display or NULL on error </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv418lv_disp_drv_updateP9lv_disp_tP13lv_disp_drv_t">
<span id="_CPPv318lv_disp_drv_updateP9lv_disp_tP13lv_disp_drv_t"></span><span id="_CPPv218lv_disp_drv_updateP9lv_disp_tP13lv_disp_drv_t"></span><span id="lv_disp_drv_update__lv_disp_tP.lv_disp_drv_tP"></span><span class="target" id="lv__hal__disp_8h_1a0e26ace940fd5d3a9f27ffdc322f6a86"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_disp_drv_update</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv49lv_disp_t" title="lv_disp_t"><span class="pre">lv_disp_t</span></a> <span class="pre">*</span><em><span class="pre">disp</span></em>, <a class="reference internal" href="#_CPPv413lv_disp_drv_t" title="lv_disp_drv_t"><span class="pre">lv_disp_drv_t</span></a> <span class="pre">*</span><em><span class="pre">new_drv</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv418lv_disp_drv_updateP9lv_disp_tP13lv_disp_drv_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Update the driver in run time. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>disp</strong> -- pointer to a display. (return value of <code class="docutils literal notranslate"><span class="pre">lv_disp_drv_register</span></code>) </p></li>
<li><p><strong>new_drv</strong> -- pointer to the new driver </p></li>
</ul>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv414lv_disp_removeP9lv_disp_t">
<span id="_CPPv314lv_disp_removeP9lv_disp_t"></span><span id="_CPPv214lv_disp_removeP9lv_disp_t"></span><span id="lv_disp_remove__lv_disp_tP"></span><span class="target" id="lv__hal__disp_8h_1af37aec229f23769468de96750be77bfc"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_disp_remove</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv49lv_disp_t" title="lv_disp_t"><span class="pre">lv_disp_t</span></a> <span class="pre">*</span><em><span class="pre">disp</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv414lv_disp_removeP9lv_disp_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Remove a display </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>disp</strong> -- pointer to display </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv419lv_disp_set_defaultP9lv_disp_t">
<span id="_CPPv319lv_disp_set_defaultP9lv_disp_t"></span><span id="_CPPv219lv_disp_set_defaultP9lv_disp_t"></span><span id="lv_disp_set_default__lv_disp_tP"></span><span class="target" id="lv__hal__disp_8h_1a490ee32cbb499fb8f2e2439a8ed7fbb6"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">lv_disp_set_default</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv49lv_disp_t" title="lv_disp_t"><span class="pre">lv_disp_t</span></a> <span class="pre">*</span><em><span class="pre">disp</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419lv_disp_set_defaultP9lv_disp_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Set a default screen. The new screens will be created on it by default. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>disp</strong> -- pointer to a display </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv419lv_disp_get_defaultv">
<span id="_CPPv319lv_disp_get_defaultv"></span><span id="_CPPv219lv_disp_get_defaultv"></span><span id="lv_disp_get_default__void"></span><span class="target" id="lv__hal__disp_8h_1a1989caf62ece629efb8962d462ebef9e"></span><a class="reference internal" href="#_CPPv49lv_disp_t" title="lv_disp_t"><span class="pre">lv_disp_t</span></a> <span class="pre">*</span><code class="sig-name descname"><span class="pre">lv_disp_get_default</span></code><span class="sig-paren">(</span><span class="pre">void</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419lv_disp_get_defaultv" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the default display </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>pointer to the default display </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv419lv_disp_get_hor_resP9lv_disp_t">
<span id="_CPPv319lv_disp_get_hor_resP9lv_disp_t"></span><span id="_CPPv219lv_disp_get_hor_resP9lv_disp_t"></span><span id="lv_disp_get_hor_res__lv_disp_tP"></span><span class="target" id="lv__hal__disp_8h_1a31a32a09b2b1b6ac0ebeedcd6d6f8ce3"></span><span class="pre">lv_coord_t</span> <code class="sig-name descname"><span class="pre">lv_disp_get_hor_res</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv49lv_disp_t" title="lv_disp_t"><span class="pre">lv_disp_t</span></a> <span class="pre">*</span><em><span class="pre">disp</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419lv_disp_get_hor_resP9lv_disp_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the horizontal resolution of a display </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>disp</strong> -- pointer to a display (NULL to use the default display) </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>the horizontal resolution of the display </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv419lv_disp_get_ver_resP9lv_disp_t">
<span id="_CPPv319lv_disp_get_ver_resP9lv_disp_t"></span><span id="_CPPv219lv_disp_get_ver_resP9lv_disp_t"></span><span id="lv_disp_get_ver_res__lv_disp_tP"></span><span class="target" id="lv__hal__disp_8h_1ad89a6aa4394a200d4482aa605cc57107"></span><span class="pre">lv_coord_t</span> <code class="sig-name descname"><span class="pre">lv_disp_get_ver_res</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv49lv_disp_t" title="lv_disp_t"><span class="pre">lv_disp_t</span></a> <span class="pre">*</span><em><span class="pre">disp</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv419lv_disp_get_ver_resP9lv_disp_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the vertical resolution of a display </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>disp</strong> -- pointer to a display (NULL to use the default display) </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>the vertical resolution of the display </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv424lv_disp_get_antialiasingP9lv_disp_t">
<span id="_CPPv324lv_disp_get_antialiasingP9lv_disp_t"></span><span id="_CPPv224lv_disp_get_antialiasingP9lv_disp_t"></span><span id="lv_disp_get_antialiasing__lv_disp_tP"></span><span class="target" id="lv__hal__disp_8h_1abe0f2764b9f8b355aa6df60ab75bd70f"></span><span class="pre">bool</span> <code class="sig-name descname"><span class="pre">lv_disp_get_antialiasing</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv49lv_disp_t" title="lv_disp_t"><span class="pre">lv_disp_t</span></a> <span class="pre">*</span><em><span class="pre">disp</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424lv_disp_get_antialiasingP9lv_disp_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get if anti-aliasing is enabled for a display or not </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>disp</strong> -- pointer to a display (NULL to use the default display) </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>true: anti-aliasing is enabled; false: disabled </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv415lv_disp_get_dpiP9lv_disp_t">
<span id="_CPPv315lv_disp_get_dpiP9lv_disp_t"></span><span id="_CPPv215lv_disp_get_dpiP9lv_disp_t"></span><span id="lv_disp_get_dpi__lv_disp_tP"></span><span class="target" id="lv__hal__disp_8h_1ad26b7f327ae254bb0d798e3604f3301c"></span><span class="pre">lv_coord_t</span> <code class="sig-name descname"><span class="pre">lv_disp_get_dpi</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv49lv_disp_t" title="lv_disp_t"><span class="pre">lv_disp_t</span></a> <span class="pre">*</span><em><span class="pre">disp</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv415lv_disp_get_dpiP9lv_disp_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the DPI of the display </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>disp</strong> -- pointer to a display (NULL to use the default display) </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>dpi of the display </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv425lv_disp_get_size_categoryP9lv_disp_t">
<span id="_CPPv325lv_disp_get_size_categoryP9lv_disp_t"></span><span id="_CPPv225lv_disp_get_size_categoryP9lv_disp_t"></span><span id="lv_disp_get_size_category__lv_disp_tP"></span><span class="target" id="lv__hal__disp_8h_1aea0caf7f394683347fec0ffa1a5af65a"></span><a class="reference internal" href="#_CPPv414lv_disp_size_t" title="lv_disp_size_t"><span class="pre">lv_disp_size_t</span></a> <code class="sig-name descname"><span class="pre">lv_disp_get_size_category</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv49lv_disp_t" title="lv_disp_t"><span class="pre">lv_disp_t</span></a> <span class="pre">*</span><em><span class="pre">disp</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425lv_disp_get_size_categoryP9lv_disp_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the size category of the display based on it's hor. res. and dpi. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>disp</strong> -- pointer to a display (NULL to use the default display) </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>LV_DISP_SIZE_SMALL/MEDIUM/LARGE/EXTRA_LARGE </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv416lv_disp_get_nextP9lv_disp_t">
<span id="_CPPv316lv_disp_get_nextP9lv_disp_t"></span><span id="_CPPv216lv_disp_get_nextP9lv_disp_t"></span><span id="lv_disp_get_next__lv_disp_tP"></span><span class="target" id="lv__hal__disp_8h_1a98bd7729feac5847ea164141825e10a7"></span><a class="reference internal" href="#_CPPv49lv_disp_t" title="lv_disp_t"><span class="pre">lv_disp_t</span></a> <span class="pre">*</span><code class="sig-name descname"><span class="pre">lv_disp_get_next</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv49lv_disp_t" title="lv_disp_t"><span class="pre">lv_disp_t</span></a> <span class="pre">*</span><em><span class="pre">disp</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv416lv_disp_get_nextP9lv_disp_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the next display. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>disp</strong> -- pointer to the current display. NULL to initialize. </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>the next display or NULL if no more. Give the first display when the parameter is NULL </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv415lv_disp_get_bufP9lv_disp_t">
<span id="_CPPv315lv_disp_get_bufP9lv_disp_t"></span><span id="_CPPv215lv_disp_get_bufP9lv_disp_t"></span><span id="lv_disp_get_buf__lv_disp_tP"></span><span class="target" id="lv__hal__disp_8h_1a0d9d997c562ee17f4bd2519e6a99de0f"></span><a class="reference internal" href="#_CPPv413lv_disp_buf_t" title="lv_disp_buf_t"><span class="pre">lv_disp_buf_t</span></a> <span class="pre">*</span><code class="sig-name descname"><span class="pre">lv_disp_get_buf</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv49lv_disp_t" title="lv_disp_t"><span class="pre">lv_disp_t</span></a> <span class="pre">*</span><em><span class="pre">disp</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv415lv_disp_get_bufP9lv_disp_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the internal buffer of a display </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>disp</strong> -- pointer to a display </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>pointer to the internal buffers </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv424lv_disp_get_inv_buf_sizeP9lv_disp_t">
<span id="_CPPv324lv_disp_get_inv_buf_sizeP9lv_disp_t"></span><span id="_CPPv224lv_disp_get_inv_buf_sizeP9lv_disp_t"></span><span id="lv_disp_get_inv_buf_size__lv_disp_tP"></span><span class="target" id="lv__hal__disp_8h_1a287a8cf1a052d8a9eed77c03cc8b281c"></span><span class="pre">uint16_t</span> <code class="sig-name descname"><span class="pre">lv_disp_get_inv_buf_size</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv49lv_disp_t" title="lv_disp_t"><span class="pre">lv_disp_t</span></a> <span class="pre">*</span><em><span class="pre">disp</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv424lv_disp_get_inv_buf_sizeP9lv_disp_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Get the number of areas in the buffer </p>
<dl class="field-list simple">
<dt class="field-odd">Returns</dt>
<dd class="field-odd"><p>number of invalid areas </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv425_lv_disp_pop_from_inv_bufP9lv_disp_t8uint16_t">
<span id="_CPPv325_lv_disp_pop_from_inv_bufP9lv_disp_t8uint16_t"></span><span id="_CPPv225_lv_disp_pop_from_inv_bufP9lv_disp_t8uint16_t"></span><span id="_lv_disp_pop_from_inv_buf__lv_disp_tP.uint16_t"></span><span class="target" id="lv__hal__disp_8h_1a3a03efc02f06c2e763188091205ab0f6"></span><span class="pre">void</span> <code class="sig-name descname"><span class="pre">_lv_disp_pop_from_inv_buf</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv49lv_disp_t" title="lv_disp_t"><span class="pre">lv_disp_t</span></a> <span class="pre">*</span><em><span class="pre">disp</span></em>, <span class="pre">uint16_t</span> <em><span class="pre">num</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425_lv_disp_pop_from_inv_bufP9lv_disp_t8uint16_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Pop (delete) the last 'num' invalidated areas from the buffer </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>num</strong> -- number of areas to delete </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv421lv_disp_is_double_bufP9lv_disp_t">
<span id="_CPPv321lv_disp_is_double_bufP9lv_disp_t"></span><span id="_CPPv221lv_disp_is_double_bufP9lv_disp_t"></span><span id="lv_disp_is_double_buf__lv_disp_tP"></span><span class="target" id="lv__hal__disp_8h_1ad705fe70d41b924926276a653b215d84"></span><span class="pre">bool</span> <code class="sig-name descname"><span class="pre">lv_disp_is_double_buf</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv49lv_disp_t" title="lv_disp_t"><span class="pre">lv_disp_t</span></a> <span class="pre">*</span><em><span class="pre">disp</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv421lv_disp_is_double_bufP9lv_disp_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Check the driver configuration if it's double buffered (both <code class="docutils literal notranslate"><span class="pre">buf1</span></code> and <code class="docutils literal notranslate"><span class="pre">buf2</span></code> are set) </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>disp</strong> -- pointer to to display to check </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>true: double buffered; false: not double buffered </p>
</dd>
</dl>
</dd></dl>

<dl class="cpp function">
<dt id="_CPPv426lv_disp_is_true_double_bufP9lv_disp_t">
<span id="_CPPv326lv_disp_is_true_double_bufP9lv_disp_t"></span><span id="_CPPv226lv_disp_is_true_double_bufP9lv_disp_t"></span><span id="lv_disp_is_true_double_buf__lv_disp_tP"></span><span class="target" id="lv__hal__disp_8h_1a4066f462989fc62d861401c6114e255e"></span><span class="pre">bool</span> <code class="sig-name descname"><span class="pre">lv_disp_is_true_double_buf</span></code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv49lv_disp_t" title="lv_disp_t"><span class="pre">lv_disp_t</span></a> <span class="pre">*</span><em><span class="pre">disp</span></em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv426lv_disp_is_true_double_bufP9lv_disp_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Check the driver configuration if it's TRUE double buffered (both <code class="docutils literal notranslate"><span class="pre">buf1</span></code> and <code class="docutils literal notranslate"><span class="pre">buf2</span></code> are set and <code class="docutils literal notranslate"><span class="pre">size</span></code> is screen sized) </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>disp</strong> -- pointer to to display to check </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>true: double buffered; false: not double buffered </p>
</dd>
</dl>
</dd></dl>

</div>
<dl class="cpp struct">
<dt id="_CPPv413lv_disp_buf_t">
<span id="_CPPv313lv_disp_buf_t"></span><span id="_CPPv213lv_disp_buf_t"></span><span id="lv_disp_buf_t"></span><span class="target" id="structlv__disp__buf__t"></span><em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">lv_disp_buf_t</span></code><a class="headerlink" href="#_CPPv413lv_disp_buf_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;lv_hal_disp.h&gt;</em><p>Structure for holding display buffer information. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt id="_CPPv4N13lv_disp_buf_t4buf1E">
<span id="_CPPv3N13lv_disp_buf_t4buf1E"></span><span id="_CPPv2N13lv_disp_buf_t4buf1E"></span><span id="lv_disp_buf_t::buf1__voidP"></span><span class="target" id="structlv__disp__buf__t_1a7c56283a8c5b0dc52a82fb20b464a9d9"></span><span class="pre">void</span> <span class="pre">*</span><code class="sig-name descname"><span class="pre">buf1</span></code><a class="headerlink" href="#_CPPv4N13lv_disp_buf_t4buf1E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>First display buffer. </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N13lv_disp_buf_t4buf2E">
<span id="_CPPv3N13lv_disp_buf_t4buf2E"></span><span id="_CPPv2N13lv_disp_buf_t4buf2E"></span><span id="lv_disp_buf_t::buf2__voidP"></span><span class="target" id="structlv__disp__buf__t_1afcaaf378df61c9b5f30555e371c910ef"></span><span class="pre">void</span> <span class="pre">*</span><code class="sig-name descname"><span class="pre">buf2</span></code><a class="headerlink" href="#_CPPv4N13lv_disp_buf_t4buf2E" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Second display buffer. </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N13lv_disp_buf_t7buf_actE">
<span id="_CPPv3N13lv_disp_buf_t7buf_actE"></span><span id="_CPPv2N13lv_disp_buf_t7buf_actE"></span><span id="lv_disp_buf_t::buf_act__voidP"></span><span class="target" id="structlv__disp__buf__t_1ae4f48a9bc71d13eb18552a4b9ca5c711"></span><span class="pre">void</span> <span class="pre">*</span><code class="sig-name descname"><span class="pre">buf_act</span></code><a class="headerlink" href="#_CPPv4N13lv_disp_buf_t7buf_actE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N13lv_disp_buf_t4sizeE">
<span id="_CPPv3N13lv_disp_buf_t4sizeE"></span><span id="_CPPv2N13lv_disp_buf_t4sizeE"></span><span id="lv_disp_buf_t::size__uint32_t"></span><span class="target" id="structlv__disp__buf__t_1ad6b8801bc0cc47a83cd1fbccbe7964ff"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">size</span></code><a class="headerlink" href="#_CPPv4N13lv_disp_buf_t4sizeE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N13lv_disp_buf_t4areaE">
<span id="_CPPv3N13lv_disp_buf_t4areaE"></span><span id="_CPPv2N13lv_disp_buf_t4areaE"></span><span id="lv_disp_buf_t::area__lv_area_t"></span><span class="target" id="structlv__disp__buf__t_1af316716d5d23347cf1a13d43bbfc65b0"></span><span class="pre">lv_area_t</span> <code class="sig-name descname"><span class="pre">area</span></code><a class="headerlink" href="#_CPPv4N13lv_disp_buf_t4areaE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N13lv_disp_buf_t8flushingE">
<span id="_CPPv3N13lv_disp_buf_t8flushingE"></span><span id="_CPPv2N13lv_disp_buf_t8flushingE"></span><span id="lv_disp_buf_t::flushing__i"></span><span class="target" id="structlv__disp__buf__t_1aff04e7c458b197d525fe388a6993f490"></span><span class="pre">int</span> <code class="sig-name descname"><span class="pre">flushing</span></code><a class="headerlink" href="#_CPPv4N13lv_disp_buf_t8flushingE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N13lv_disp_buf_t13flushing_lastE">
<span id="_CPPv3N13lv_disp_buf_t13flushing_lastE"></span><span id="_CPPv2N13lv_disp_buf_t13flushing_lastE"></span><span id="lv_disp_buf_t::flushing_last__i"></span><span class="target" id="structlv__disp__buf__t_1aaac641fe6b717095c0092c45a71fb0e8"></span><span class="pre">int</span> <code class="sig-name descname"><span class="pre">flushing_last</span></code><a class="headerlink" href="#_CPPv4N13lv_disp_buf_t13flushing_lastE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N13lv_disp_buf_t9last_areaE">
<span id="_CPPv3N13lv_disp_buf_t9last_areaE"></span><span id="_CPPv2N13lv_disp_buf_t9last_areaE"></span><span id="lv_disp_buf_t::last_area__uint32_t"></span><span class="target" id="structlv__disp__buf__t_1a0f63af9f223b30d05ebb94a90396c61a"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">last_area</span></code><a class="headerlink" href="#_CPPv4N13lv_disp_buf_t9last_areaE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N13lv_disp_buf_t9last_partE">
<span id="_CPPv3N13lv_disp_buf_t9last_partE"></span><span id="_CPPv2N13lv_disp_buf_t9last_partE"></span><span id="lv_disp_buf_t::last_part__uint32_t"></span><span class="target" id="structlv__disp__buf__t_1a216234aee5b3512d55bd514b5ba4ee69"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">last_part</span></code><a class="headerlink" href="#_CPPv4N13lv_disp_buf_t9last_partE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

</div>
</dd></dl>

<dl class="cpp struct">
<dt id="_CPPv411_disp_drv_t">
<span id="_CPPv311_disp_drv_t"></span><span id="_CPPv211_disp_drv_t"></span><span id="_disp_drv_t"></span><span class="target" id="struct__disp__drv__t"></span><em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">_disp_drv_t</span></code><a class="headerlink" href="#_CPPv411_disp_drv_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;lv_hal_disp.h&gt;</em><p>Display Driver structure to be registered by HAL </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt id="_CPPv4N11_disp_drv_t7hor_resE">
<span id="_CPPv3N11_disp_drv_t7hor_resE"></span><span id="_CPPv2N11_disp_drv_t7hor_resE"></span><span id="_disp_drv_t::hor_res__lv_coord_t"></span><span class="target" id="struct__disp__drv__t_1a7e3be2880c529d5e7662d4db0a07664e"></span><span class="pre">lv_coord_t</span> <code class="sig-name descname"><span class="pre">hor_res</span></code><a class="headerlink" href="#_CPPv4N11_disp_drv_t7hor_resE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Horizontal resolution. </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N11_disp_drv_t7ver_resE">
<span id="_CPPv3N11_disp_drv_t7ver_resE"></span><span id="_CPPv2N11_disp_drv_t7ver_resE"></span><span id="_disp_drv_t::ver_res__lv_coord_t"></span><span class="target" id="struct__disp__drv__t_1a21f1b312f97ffea34202d5d7846974ee"></span><span class="pre">lv_coord_t</span> <code class="sig-name descname"><span class="pre">ver_res</span></code><a class="headerlink" href="#_CPPv4N11_disp_drv_t7ver_resE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Vertical resolution. </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N11_disp_drv_t6bufferE">
<span id="_CPPv3N11_disp_drv_t6bufferE"></span><span id="_CPPv2N11_disp_drv_t6bufferE"></span><span id="_disp_drv_t::buffer__lv_disp_buf_tP"></span><span class="target" id="struct__disp__drv__t_1a9187f73accf5f98768402bb004527734"></span><a class="reference internal" href="#_CPPv413lv_disp_buf_t" title="lv_disp_buf_t"><span class="pre">lv_disp_buf_t</span></a> <span class="pre">*</span><code class="sig-name descname"><span class="pre">buffer</span></code><a class="headerlink" href="#_CPPv4N11_disp_drv_t6bufferE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Pointer to a buffer initialized with <code class="docutils literal notranslate"><a class="reference internal" href="#lv__hal__disp_8h_1a31bfd68c610a609777fe22c30ce70f69"><span class="std std-ref"><span class="pre">lv_disp_buf_init()</span></span></a></code>. LVGL will use this buffer(s) to draw the screens contents </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N11_disp_drv_t12antialiasingE">
<span id="_CPPv3N11_disp_drv_t12antialiasingE"></span><span id="_CPPv2N11_disp_drv_t12antialiasingE"></span><span id="_disp_drv_t::antialiasing__uint32_t"></span><span class="target" id="struct__disp__drv__t_1a3ef659c52d581d1356466fb198b1e3d5"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">antialiasing</span></code><a class="headerlink" href="#_CPPv4N11_disp_drv_t12antialiasingE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>1: antialiasing is enabled on this display. </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N11_disp_drv_t7rotatedE">
<span id="_CPPv3N11_disp_drv_t7rotatedE"></span><span id="_CPPv2N11_disp_drv_t7rotatedE"></span><span id="_disp_drv_t::rotated__uint32_t"></span><span class="target" id="struct__disp__drv__t_1a29a3cccc7f814ae9d77bb2e4fea536f7"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">rotated</span></code><a class="headerlink" href="#_CPPv4N11_disp_drv_t7rotatedE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>1: turn the display by 90 degree. </p>
<div class="admonition warning">
<p class="admonition-title">Warning</p>
<p>Does not update coordinates for you! </p>
</div>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N11_disp_drv_t13screen_transpE">
<span id="_CPPv3N11_disp_drv_t13screen_transpE"></span><span id="_CPPv2N11_disp_drv_t13screen_transpE"></span><span id="_disp_drv_t::screen_transp__uint32_t"></span><span class="target" id="struct__disp__drv__t_1ae07c8244a3ae00bd1c438824311dff54"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">screen_transp</span></code><a class="headerlink" href="#_CPPv4N11_disp_drv_t13screen_transpE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Handle if the screen doesn't have a solid (opa == LV_OPA_COVER) background. Use only if required because it's slower. </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N11_disp_drv_t3dpiE">
<span id="_CPPv3N11_disp_drv_t3dpiE"></span><span id="_CPPv2N11_disp_drv_t3dpiE"></span><span id="_disp_drv_t::dpi__uint32_t"></span><span class="target" id="struct__disp__drv__t_1a93d717822cadf02be2545ad2d64e0b75"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">dpi</span></code><a class="headerlink" href="#_CPPv4N11_disp_drv_t3dpiE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>DPI (dot per inch) of the display. Set to <code class="docutils literal notranslate"><span class="pre">LV_DPI</span></code> from <code class="docutils literal notranslate"><span class="pre">lv_Conf.h</span></code> by default. </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N11_disp_drv_t8flush_cbE">
<span id="_CPPv3N11_disp_drv_t8flush_cbE"></span><span id="_CPPv2N11_disp_drv_t8flush_cbE"></span><span class="target" id="struct__disp__drv__t_1a55a620fcab2ffb0d41a12f13c4f41291"></span><span class="pre">void</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">flush_cb</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv411_disp_drv_t" title="_disp_drv_t"><span class="pre">_disp_drv_t</span></a> <span class="pre">*</span><span class="pre">disp_drv</span>, <em class="property"><span class="pre">const</span></em> <span class="pre">lv_area_t</span> <span class="pre">*</span><span class="pre">area</span>, <span class="pre">lv_color_t</span> <span class="pre">*</span><span class="pre">color_p</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N11_disp_drv_t8flush_cbE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>MANDATORY: Write the internal buffer (VDB) to the display. 'lv_disp_flush_ready()' has to be called when finished </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N11_disp_drv_t10rounder_cbE">
<span id="_CPPv3N11_disp_drv_t10rounder_cbE"></span><span id="_CPPv2N11_disp_drv_t10rounder_cbE"></span><span class="target" id="struct__disp__drv__t_1a1a012c9cb3884a9e960747e55d502629"></span><span class="pre">void</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">rounder_cb</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv411_disp_drv_t" title="_disp_drv_t"><span class="pre">_disp_drv_t</span></a> <span class="pre">*</span><span class="pre">disp_drv</span>, <span class="pre">lv_area_t</span> <span class="pre">*</span><span class="pre">area</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N11_disp_drv_t10rounder_cbE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>OPTIONAL: Extend the invalidated areas to match with the display drivers requirements E.g. round <code class="docutils literal notranslate"><span class="pre">y</span></code> to, 8, 16 ..) on a monochrome display </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N11_disp_drv_t9set_px_cbE">
<span id="_CPPv3N11_disp_drv_t9set_px_cbE"></span><span id="_CPPv2N11_disp_drv_t9set_px_cbE"></span><span class="target" id="struct__disp__drv__t_1a96466fc0be03f5b3526d382f2c4568bd"></span><span class="pre">void</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">set_px_cb</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv411_disp_drv_t" title="_disp_drv_t"><span class="pre">_disp_drv_t</span></a> <span class="pre">*</span><span class="pre">disp_drv</span>, <span class="pre">uint8_t</span> <span class="pre">*</span><span class="pre">buf</span>, <span class="pre">lv_coord_t</span> <span class="pre">buf_w</span>, <span class="pre">lv_coord_t</span> <span class="pre">x</span>, <span class="pre">lv_coord_t</span> <span class="pre">y</span>, <span class="pre">lv_color_t</span> <span class="pre">color</span>, <span class="pre">lv_opa_t</span> <span class="pre">opa</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N11_disp_drv_t9set_px_cbE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>OPTIONAL: Set a pixel in a buffer according to the special requirements of the display Can be used for color format not supported in LittelvGL. E.g. 2 bit -&gt; 4 gray scales </p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Much slower then drawing with supported color formats. </p>
</div>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N11_disp_drv_t10monitor_cbE">
<span id="_CPPv3N11_disp_drv_t10monitor_cbE"></span><span id="_CPPv2N11_disp_drv_t10monitor_cbE"></span><span class="target" id="struct__disp__drv__t_1aeea2bed761a832dcb30560146dfc3778"></span><span class="pre">void</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">monitor_cb</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv411_disp_drv_t" title="_disp_drv_t"><span class="pre">_disp_drv_t</span></a> <span class="pre">*</span><span class="pre">disp_drv</span>, <span class="pre">uint32_t</span> <span class="pre">time</span>, <span class="pre">uint32_t</span> <span class="pre">px</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N11_disp_drv_t10monitor_cbE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>OPTIONAL: Called after every refresh cycle to tell the rendering and flushing time + the number of flushed pixels </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N11_disp_drv_t7wait_cbE">
<span id="_CPPv3N11_disp_drv_t7wait_cbE"></span><span id="_CPPv2N11_disp_drv_t7wait_cbE"></span><span class="target" id="struct__disp__drv__t_1a463877a89351206eb9e40547651676ca"></span><span class="pre">void</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">wait_cb</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv411_disp_drv_t" title="_disp_drv_t"><span class="pre">_disp_drv_t</span></a> <span class="pre">*</span><span class="pre">disp_drv</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N11_disp_drv_t7wait_cbE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>OPTIONAL: Called periodically while lvgl waits for operation to be completed. For example flushing or GPU User can execute very simple tasks here or yield the task </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N11_disp_drv_t15clean_dcache_cbE">
<span id="_CPPv3N11_disp_drv_t15clean_dcache_cbE"></span><span id="_CPPv2N11_disp_drv_t15clean_dcache_cbE"></span><span class="target" id="struct__disp__drv__t_1a2bd00c56f68ec6c2a54d192aa52d4292"></span><span class="pre">void</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">clean_dcache_cb</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv411_disp_drv_t" title="_disp_drv_t"><span class="pre">_disp_drv_t</span></a> <span class="pre">*</span><span class="pre">disp_drv</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N11_disp_drv_t15clean_dcache_cbE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>OPTIONAL: Called when lvgl needs any CPU cache that affects rendering to be cleaned </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N11_disp_drv_t11gpu_wait_cbE">
<span id="_CPPv3N11_disp_drv_t11gpu_wait_cbE"></span><span id="_CPPv2N11_disp_drv_t11gpu_wait_cbE"></span><span class="target" id="struct__disp__drv__t_1a849cd1810fe5b99ed3b6345f07efab3b"></span><span class="pre">void</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">gpu_wait_cb</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv411_disp_drv_t" title="_disp_drv_t"><span class="pre">_disp_drv_t</span></a> <span class="pre">*</span><span class="pre">disp_drv</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N11_disp_drv_t11gpu_wait_cbE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>OPTIONAL: called to wait while the gpu is working </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N11_disp_drv_t12gpu_blend_cbE">
<span id="_CPPv3N11_disp_drv_t12gpu_blend_cbE"></span><span id="_CPPv2N11_disp_drv_t12gpu_blend_cbE"></span><span class="target" id="struct__disp__drv__t_1a3a51d09fd664baa53552c72e8209a39d"></span><span class="pre">void</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">gpu_blend_cb</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv411_disp_drv_t" title="_disp_drv_t"><span class="pre">_disp_drv_t</span></a> <span class="pre">*</span><span class="pre">disp_drv</span>, <span class="pre">lv_color_t</span> <span class="pre">*</span><span class="pre">dest</span>, <em class="property"><span class="pre">const</span></em> <span class="pre">lv_color_t</span> <span class="pre">*</span><span class="pre">src</span>, <span class="pre">uint32_t</span> <span class="pre">length</span>, <span class="pre">lv_opa_t</span> <span class="pre">opa</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N11_disp_drv_t12gpu_blend_cbE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>OPTIONAL: Blend two memories using opacity (GPU only) </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N11_disp_drv_t11gpu_fill_cbE">
<span id="_CPPv3N11_disp_drv_t11gpu_fill_cbE"></span><span id="_CPPv2N11_disp_drv_t11gpu_fill_cbE"></span><span class="target" id="struct__disp__drv__t_1a6c5d122ced7061fc1195bb095a2edd2a"></span><span class="pre">void</span> <span class="pre">(</span><span class="pre">*</span><code class="sig-name descname"><span class="pre">gpu_fill_cb</span></code><span class="pre">)</span><span class="sig-paren">(</span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="#_CPPv411_disp_drv_t" title="_disp_drv_t"><span class="pre">_disp_drv_t</span></a> <span class="pre">*</span><span class="pre">disp_drv</span>, <span class="pre">lv_color_t</span> <span class="pre">*</span><span class="pre">dest_buf</span>, <span class="pre">lv_coord_t</span> <span class="pre">dest_width</span>, <em class="property"><span class="pre">const</span></em> <span class="pre">lv_area_t</span> <span class="pre">*</span><span class="pre">fill_area</span>, <span class="pre">lv_color_t</span> <span class="pre">color</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N11_disp_drv_t11gpu_fill_cbE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>OPTIONAL: Fill a memory with a color (GPU only) </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N11_disp_drv_t16color_chroma_keyE">
<span id="_CPPv3N11_disp_drv_t16color_chroma_keyE"></span><span id="_CPPv2N11_disp_drv_t16color_chroma_keyE"></span><span id="_disp_drv_t::color_chroma_key__lv_color_t"></span><span class="target" id="struct__disp__drv__t_1afcc099f8594a566b712353afc37b578d"></span><span class="pre">lv_color_t</span> <code class="sig-name descname"><span class="pre">color_chroma_key</span></code><a class="headerlink" href="#_CPPv4N11_disp_drv_t16color_chroma_keyE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>On CHROMA_KEYED images this color will be transparent. <code class="docutils literal notranslate"><span class="pre">LV_COLOR_TRANSP</span></code> by default. (lv_conf.h) </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N11_disp_drv_t9user_dataE">
<span id="_CPPv3N11_disp_drv_t9user_dataE"></span><span id="_CPPv2N11_disp_drv_t9user_dataE"></span><span id="_disp_drv_t::user_data__lv_disp_drv_user_data_t"></span><span class="target" id="struct__disp__drv__t_1ac18613f3bd1a2d8f6e85fc54f4dbcb81"></span><span class="pre">lv_disp_drv_user_data_t</span> <code class="sig-name descname"><span class="pre">user_data</span></code><a class="headerlink" href="#_CPPv4N11_disp_drv_t9user_dataE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Custom display driver user data </p>
</dd></dl>

</div>
</dd></dl>

<dl class="cpp struct">
<dt id="_CPPv47_disp_t">
<span id="_CPPv37_disp_t"></span><span id="_CPPv27_disp_t"></span><span id="_disp_t"></span><span class="target" id="struct__disp__t"></span><em class="property"><span class="pre">struct</span> </em><code class="sig-name descname"><span class="pre">_disp_t</span></code><a class="headerlink" href="#_CPPv47_disp_t" title="Permalink to this definition">¶</a><br /></dt>
<dd><em>#include &lt;lv_hal_disp.h&gt;</em><p>Display structure. <div class="admonition note">
<p class="admonition-title">Note</p>
<p><code class="docutils literal notranslate"><span class="pre">lv_disp_drv_t</span></code> should be the first member of the structure. </p>
</div>
</p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt id="_CPPv4N7_disp_t6driverE">
<span id="_CPPv3N7_disp_t6driverE"></span><span id="_CPPv2N7_disp_t6driverE"></span><span id="_disp_t::driver__lv_disp_drv_t"></span><span class="target" id="struct__disp__t_1a41b2d7b8aece123e730aba6de4737040"></span><a class="reference internal" href="#_CPPv413lv_disp_drv_t" title="lv_disp_drv_t"><span class="pre">lv_disp_drv_t</span></a> <code class="sig-name descname"><span class="pre">driver</span></code><a class="headerlink" href="#_CPPv4N7_disp_t6driverE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>&lt; Driver to the display A task which periodically checks the dirty areas and refreshes them </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N7_disp_t9refr_taskE">
<span id="_CPPv3N7_disp_t9refr_taskE"></span><span id="_CPPv2N7_disp_t9refr_taskE"></span><span id="_disp_t::refr_task__lv_task_tP"></span><span class="target" id="struct__disp__t_1a643fda9b299c7dae5e3dd86415182140"></span><a class="reference internal" href="../overview/task.html#_CPPv49lv_task_t" title="lv_task_t"><span class="pre">lv_task_t</span></a> <span class="pre">*</span><code class="sig-name descname"><span class="pre">refr_task</span></code><a class="headerlink" href="#_CPPv4N7_disp_t9refr_taskE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N7_disp_t6scr_llE">
<span id="_CPPv3N7_disp_t6scr_llE"></span><span id="_CPPv2N7_disp_t6scr_llE"></span><span id="_disp_t::scr_ll__lv_ll_t"></span><span class="target" id="struct__disp__t_1a53c6760eb63a16a86340331e7edcab39"></span><span class="pre">lv_ll_t</span> <code class="sig-name descname"><span class="pre">scr_ll</span></code><a class="headerlink" href="#_CPPv4N7_disp_t6scr_llE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Screens of the display </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N7_disp_t7act_scrE">
<span id="_CPPv3N7_disp_t7act_scrE"></span><span id="_CPPv2N7_disp_t7act_scrE"></span><span id="_disp_t::act_scr___lv_obj_tP"></span><span class="target" id="struct__disp__t_1ae536685fe807c9f8f442b66e9e9b7f01"></span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="../widgets/obj.html#_CPPv49_lv_obj_t" title="_lv_obj_t"><span class="pre">_lv_obj_t</span></a> <span class="pre">*</span><code class="sig-name descname"><span class="pre">act_scr</span></code><a class="headerlink" href="#_CPPv4N7_disp_t7act_scrE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Currently active screen on this display </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N7_disp_t8prev_scrE">
<span id="_CPPv3N7_disp_t8prev_scrE"></span><span id="_CPPv2N7_disp_t8prev_scrE"></span><span id="_disp_t::prev_scr___lv_obj_tP"></span><span class="target" id="struct__disp__t_1a701ca70a168f23c14a6f727231573aa7"></span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="../widgets/obj.html#_CPPv49_lv_obj_t" title="_lv_obj_t"><span class="pre">_lv_obj_t</span></a> <span class="pre">*</span><code class="sig-name descname"><span class="pre">prev_scr</span></code><a class="headerlink" href="#_CPPv4N7_disp_t8prev_scrE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Previous screen. Used during screen animations </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N7_disp_t11scr_to_loadE">
<span id="_CPPv3N7_disp_t11scr_to_loadE"></span><span id="_CPPv2N7_disp_t11scr_to_loadE"></span><span id="_disp_t::scr_to_load___lv_obj_tP"></span><span class="target" id="struct__disp__t_1aa0dbf47228527606b60be6db1d10b3f6"></span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="../widgets/obj.html#_CPPv49_lv_obj_t" title="_lv_obj_t"><span class="pre">_lv_obj_t</span></a> <span class="pre">*</span><code class="sig-name descname"><span class="pre">scr_to_load</span></code><a class="headerlink" href="#_CPPv4N7_disp_t11scr_to_loadE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>The screen prepared to load in lv_scr_load_anim </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N7_disp_t9top_layerE">
<span id="_CPPv3N7_disp_t9top_layerE"></span><span id="_CPPv2N7_disp_t9top_layerE"></span><span id="_disp_t::top_layer___lv_obj_tP"></span><span class="target" id="struct__disp__t_1aaba39ff9d7e66ea7413683694d098540"></span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="../widgets/obj.html#_CPPv49_lv_obj_t" title="_lv_obj_t"><span class="pre">_lv_obj_t</span></a> <span class="pre">*</span><code class="sig-name descname"><span class="pre">top_layer</span></code><a class="headerlink" href="#_CPPv4N7_disp_t9top_layerE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p><dl class="simple">
<dt><strong>See</strong></dt><dd><p><a class="reference internal" href="../overview/display.html#lv__disp_8h_1abb96745c10c7d8b5d7acc93e70584145"><span class="std std-ref">lv_disp_get_layer_top</span></a> </p>
</dd>
</dl>
</p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N7_disp_t9sys_layerE">
<span id="_CPPv3N7_disp_t9sys_layerE"></span><span id="_CPPv2N7_disp_t9sys_layerE"></span><span id="_disp_t::sys_layer___lv_obj_tP"></span><span class="target" id="struct__disp__t_1a1db398fbbca1580257184450620e6084"></span><em class="property"><span class="pre">struct</span></em> <a class="reference internal" href="../widgets/obj.html#_CPPv49_lv_obj_t" title="_lv_obj_t"><span class="pre">_lv_obj_t</span></a> <span class="pre">*</span><code class="sig-name descname"><span class="pre">sys_layer</span></code><a class="headerlink" href="#_CPPv4N7_disp_t9sys_layerE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p><dl class="simple">
<dt><strong>See</strong></dt><dd><p><a class="reference internal" href="../overview/display.html#lv__disp_8h_1ae9a48f536aab873d71c07c313c4e433e"><span class="std std-ref">lv_disp_get_layer_sys</span></a> </p>
</dd>
</dl>
</p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N7_disp_t8del_prevE">
<span id="_CPPv3N7_disp_t8del_prevE"></span><span id="_CPPv2N7_disp_t8del_prevE"></span><span id="_disp_t::del_prev__uint8_t"></span><span class="target" id="struct__disp__t_1ab13159bf4a9b8e6092ae6a2cd75bbe9c"></span><span class="pre">uint8_t</span> <code class="sig-name descname"><span class="pre">del_prev</span></code><a class="headerlink" href="#_CPPv4N7_disp_t8del_prevE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>1: Automatically delete the previous screen when the screen load animation is ready </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N7_disp_t8bg_colorE">
<span id="_CPPv3N7_disp_t8bg_colorE"></span><span id="_CPPv2N7_disp_t8bg_colorE"></span><span id="_disp_t::bg_color__lv_color_t"></span><span class="target" id="struct__disp__t_1a73711c1f29c33700cb4f17210076f00f"></span><span class="pre">lv_color_t</span> <code class="sig-name descname"><span class="pre">bg_color</span></code><a class="headerlink" href="#_CPPv4N7_disp_t8bg_colorE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Default display color when screens are transparent </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N7_disp_t6bg_imgE">
<span id="_CPPv3N7_disp_t6bg_imgE"></span><span id="_CPPv2N7_disp_t6bg_imgE"></span><span id="_disp_t::bg_img__voidCP"></span><span class="target" id="struct__disp__t_1acc930463dd0dfa7ac55327704641264c"></span><em class="property"><span class="pre">const</span></em> <span class="pre">void</span> <span class="pre">*</span><code class="sig-name descname"><span class="pre">bg_img</span></code><a class="headerlink" href="#_CPPv4N7_disp_t6bg_imgE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>An image source to display as wallpaper </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N7_disp_t6bg_opaE">
<span id="_CPPv3N7_disp_t6bg_opaE"></span><span id="_CPPv2N7_disp_t6bg_opaE"></span><span id="_disp_t::bg_opa__lv_opa_t"></span><span class="target" id="struct__disp__t_1a9b285eec1ccb56dd471defebd952cb58"></span><span class="pre">lv_opa_t</span> <code class="sig-name descname"><span class="pre">bg_opa</span></code><a class="headerlink" href="#_CPPv4N7_disp_t6bg_opaE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Opacity of the background color or wallpaper </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N7_disp_t9inv_areasE">
<span id="_CPPv3N7_disp_t9inv_areasE"></span><span id="_CPPv2N7_disp_t9inv_areasE"></span><span id="_disp_t::inv_areas__lv_area_tA"></span><span class="target" id="struct__disp__t_1a64da96cf39224d1ec2c7f0c505543e74"></span><span class="pre">lv_area_t</span> <code class="sig-name descname"><span class="pre">inv_areas</span></code><span class="pre">[</span><code class="sig-name descname"><span class="pre">LV_INV_BUF_SIZE</span></code><span class="pre">]</span><a class="headerlink" href="#_CPPv4N7_disp_t9inv_areasE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Invalidated (marked to redraw) areas </p>
</dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N7_disp_t15inv_area_joinedE">
<span id="_CPPv3N7_disp_t15inv_area_joinedE"></span><span id="_CPPv2N7_disp_t15inv_area_joinedE"></span><span id="_disp_t::inv_area_joined__uint8_tA"></span><span class="target" id="struct__disp__t_1a91bc2f8fc0419d791d7e3123c5a621bd"></span><span class="pre">uint8_t</span> <code class="sig-name descname"><span class="pre">inv_area_joined</span></code><span class="pre">[</span><code class="sig-name descname"><span class="pre">LV_INV_BUF_SIZE</span></code><span class="pre">]</span><a class="headerlink" href="#_CPPv4N7_disp_t15inv_area_joinedE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N7_disp_t5inv_pE">
<span id="_CPPv3N7_disp_t5inv_pE"></span><span id="_CPPv2N7_disp_t5inv_pE"></span><span id="_disp_t::inv_p__uint32_t"></span><span class="target" id="struct__disp__t_1acb93e55792e807864edfd4015e201911"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">inv_p</span></code><a class="headerlink" href="#_CPPv4N7_disp_t5inv_pE" title="Permalink to this definition">¶</a><br /></dt>
<dd></dd></dl>

<dl class="cpp var">
<dt id="_CPPv4N7_disp_t18last_activity_timeE">
<span id="_CPPv3N7_disp_t18last_activity_timeE"></span><span id="_CPPv2N7_disp_t18last_activity_timeE"></span><span id="_disp_t::last_activity_time__uint32_t"></span><span class="target" id="struct__disp__t_1ae3c6f4886784c0bfc8a222e2a559e3ca"></span><span class="pre">uint32_t</span> <code class="sig-name descname"><span class="pre">last_activity_time</span></code><a class="headerlink" href="#_CPPv4N7_disp_t18last_activity_timeE" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Last time there was activity on this display </p>
</dd></dl>

</div>
</dd></dl>

</div>
</div>


           </div>
           
          </div>
          <footer>
  
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
      
        <a href="indev.html" class="btn btn-neutral float-right" title="Input device interface" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right"></span></a>
      
      
        <a href="project.html" class="btn btn-neutral float-left" title="Set-up a project" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left"></span> Previous</a>
      
    </div>
  

  <hr/>

  <div role="contentinfo">
    <p>
        
        &copy; Copyright 2020, LVGL LLC
      <span class="lastupdated">
        Last updated on May 14, 2021.
      </span>

    </p>
  </div>
    
    
    
    Built with <a href="http://sphinx-doc.org/">Sphinx</a> using a
    
    <a href="https://github.com/rtfd/sphinx_rtd_theme">theme</a>
    
    provided by <a href="https://readthedocs.org">Read the Docs</a>. 

</footer>

        </div>
      </div>

    </section>

  </div>
  

  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script>

  
  
    
  

 <script type="text/javascript">
    $(document).ready(function() {
        $(".toggle > *").hide();
        $(".toggle .header").show();
        $(".toggle .header").click(function() {
            $(this).parent().children().not(".header").toggle(400);
            $(this).parent().children(".header").toggleClass("open");
        })
    });
</script>

<script type="text/javascript">
function add_version_selector()
{
    return fetch("https://raw.githubusercontent.com/lvgl/docs_compiled/gh-pages/versionlist.txt")
        .then(res => res.text())
        .then(text => {
            const versions = text.split("\n").filter(version => version.trim().length > 0);
            p = document.getElementById("rtd-search-form").parentElement;
            p.innerHTML = `
            <select name="versions" id="versions" onchange="ver_sel()" style="border-radius:5px; margin-bottom:15px">
            ${versions.map(version => `<option value="${version}">${version}</option>`)}
            </select>` + p.innerHTML;
        });
}

function ver_sel()
{
  var x = document.getElementById("versions").value;
  window.location.href = window.location.protocol + "//" + window.location.host + "/" + x + "/";
}

document.addEventListener('DOMContentLoaded', (event) => {
    add_version_selector().then(() => {
        var value = window.location.pathname.split('/')[1];
        document.getElementById("versions").value = value;
    });
    
})
</script>


</body>
</html>